功能:用于增强Vue
本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据。
定义插件:
对象.install = function(Vue,optioons){
//1.添加全局过滤器
Vue.filter(...)
//2.添加全局自定义指令
Vue.directive(...)
//3.配置全局混入
Vue.mixin(...)
//4.添加实例方法
Vue.prototyppe.&myMethod = function(){...}
Vue.prototyppe.&myProperty = XXX
}
使用插件:Vue.use(导入的插件名)
实例:
在src下,main.js同级的plugins.js文件中:
export default {
install(Vue, x, y, z) {
console.log('@install', Vue, x, y, z)
// 全局过滤器
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() {
x: 10
},
methods: {
showName() {
console.log(this.name);
}
},
})
// 给Vue原型上添加一个方法(vm和vc都能用了)
Vue.prototype.hello = () => {
alert('你好啊')
}
}
}
// 使用插件
Vue.use(plugins, 1, 2, 3)