https://cn.vuejs.org/v2/guide/plugins.html
首先提出官网链接,但是官网给的比较笼统,没有示例代码,所以下面的这个视频代码就好一些。
总的说,使用结构如下,部分可以没有,最下方的代码是实例代码
MyPlugin.install = function (Vue, options) {
// 1. 添加全局方法或属性
//使用时 Vue.myGlobalMethod(传入参数)
Vue.myGlobalMethod = function () {
// 逻辑...
}
// 2. 添加全局资源
//使用时在标签中加入<a v-my-directive></a>就可以使用,注意v-
Vue.directive('my-directive', {
bind (el, binding, vnode, oldVnode) {
// 逻辑...
}
...
})
// 3. 注入组件选项
使用时直接 this.方法或者数据 这个是混入
Vue.mixin({
created: function () {
// 逻辑...
},
methods: {
},
data: function () {
return {
message: 'hello',
foo: 'abc'
}
}
...
})
// 4. 添加实例方法
axios的封装方法fetch就可以在这里传入
Vue.prototype.$myMethod = function (methodOptions) {
// 逻辑...
}
}
https://www.jb51.net/article/144879.htm
注意里面报了指令 方法 混入还可以通过传参控制是否有部分方法
https://www.bilibili.com/video/av60670516?from=search&seid=9204299765244438636
l
myPlugin.js文件
et MyPlugin = {};
MyPlugin.install = function (Vue, options) {
// 1. 添加全局方法或属性 注意实例方法就是这个小的VUE实例,通过prototype传来的,this点出来,而1的全局方法是VUE的用Vue来点出来
Vue.myGlobalMethod = function () {
// 逻辑...
console.log('myGlobalMethod')
}
// 2. 添加全局资源
Vue.directive('my-directive', {
bind (el, binding, vnode, oldVnode) {
// 逻辑...
}
})
// 3. 注入组件
Vue.mixin({
created: function () {
// 逻辑...
}
})
// 4. 添加实例方法 注意实例方法就是这个小的VUE实例,通过prototype传来的,this点出来,而1的全局方法是VUE的用Vue来点出来
Vue.prototype.$myMethod = function (methodOptions) {
// 逻辑...
console.log('myMethod')
}
}
export default MyPlugin
App.vue代码 使用
</template>
<script>
import Vue from 'vue'
import MyPlugin from './myPlugin'
Vue.use(MyPlugin)
export default {
data() {
return {
}
},
methods: {
},
mounted: function(){
this.$myMethod();
Vue.myGlobalMethod();
}
}
</script>