开发插件
插件通常会为vue添加全局功能,插件的范围没有限制--一般有下面几种:
1,添加全局方法或者属性,例:vue-coustom-element
2,添加全局资源:指令、过滤器,、过渡等,如vue-touch;
3,通过全局mixin方法添加一些组件选项,如:vue-router;
4,添加vue实例方法,通过把它们添加到vue.property上实现。
5,一个库,提供自己的api,同时提供上面提到的一个或多个功能,如,vue-router.
vue的插件应当有一个公开的方法install。这个方法的第一个参数是vue构造器,第二个参数是一个可选的选项对象:
MyPlugin.install = function(vue,options){
//1.添加全局方法或属性
Vue.myGlobalMethod = function(){
//逻辑
}
//添加全局资源
vue.directive('my-directive',{
bind(el,binding,vnode,oldVnode){
//逻辑
}
})
//注入组件
Vue.mixin({
created:function(){
//逻辑
}
})
//添加实例方法
Vue.prototype.$myMethod = function(methodOptions){
//逻辑
}
}
使用插件
通过全局方法vue.use()使用插件
//调用MyPlugin.install(vue)
Vue.use(MyPlugin);
也可以传入一个选项对象:
Vue.use(MyPlugin,{someOption:true})
Vue.use会自动阻止注册相同插件多次,届时只会注册一次该插件。
Vue.js官方提供的一些插件(例:vue-router)在检测到Vue是可访问的全局变量时会自动调用Vue.use()。然而在例如Commonjs的模块环境中,你应该显式的调用Vue.use()。
//用browserify或webpack提供的commonjs模块环境
var Vue = require('vue');
var VueRouter = require('vue-router')
//不要忘了调用vue.use(VueRouter)
awesome-vue 集合了来自社区贡献的数以千计的插件和库。