plugin 插件
插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种:
- 添加全局方法或者 property。如:vue-custom-element
- 添加全局资源:指令/过滤器/过渡等。如 vue-touch
- 通过全局混入来添加一些组件选项。如 vue-router
- 添加 Vue 实例方法,通过把它们添加到
Vue.prototype上实现。 - 一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router
1.开发插件
Vue.js 的插件是一个对象,对象中需要有个install 方法
这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象,可接受注册插件式传过来的参数
js
export default {
install(Vue,options){
console.log(options)
Vue.filter('mySlice', function(value){return value.slice(0,4)})
//定义全局指令
Vue.directive('fbind',{
bind(element,binding){element.value = binding.value},
inserted(element,binding){element.focus()},
update(element,binding){element.value = binding.value}
})
//定义混入
Vue.mixin({
data() {return {x:100,y:200}},
})
//给Vue原型上添加一个方法(vm和vc就都能用了)
Vue.prototype.hello = ()=>{alert('你好啊')}
}
}2.使用插件
通过全局方法 Vue.use() 使用插件。它需要在你调用 new Vue() 启动应用之前完成:
Vue.use() 的第一个参数是插件对象,第二个参数是传过去的可选参数
js
import MyPlugin from './MyPlugin'
Vue.use(MyPlugin,{})
new Vue({
// ...组件选项
})TIP
Vue.use 会自动阻止多次注册相同插件,届时即使多次调用也只会注册一次该插件。
