Vue.mixin()+全局混入插件+this.$optiosn获取初始化选项+局部混入
一、概述Vue.mixin( mixin )用法:全局注册一个混入,影响注册之后所有创建的每个 Vue 实例。插件作者可以使用混入,向组件注入自定义的行为。不推荐在应用代码中使用。https://cn.vuejs.org/v2/api/#Vue-mixin生命周期https://cn.vuejs.org/v2/guide/instance.html#%E5%AE%9E%E4%BE%8B%E7%94
·
一、全局混入插件
Vue.mixin( mixin )
用法:全局注册一个混入,影响注册之后所有创建的每个 Vue 实例(比如我们打开一个菜单页面,但是里面使用了很多我们的组件如
<my-table>
等,每个这个组件也是会被这个全局混入影响)。插件作者可以使用混入,向组件注入自定义的行为。不推荐在应用代码中使用(推荐在制作插件时使用)。
- 全局混入插件制作
const install = function (Vue) {
Vue.mixin({
// 插件注入组件选项
data () {
},
created () {
//打印看看
console.log('d', this.$options._componentTag || this.$options);
}
},
methods: {
getData (val) {
//逻辑
return ...
},
}
});
};
export default { install }
- 上面代码的打印结果(这是我再进入首页时结果)可以看出:
这个全局混入影响了这一次页面加载时所有的
Vue实例
,并且其中最前部分还有一些是Vue得生命周期部分
,我们可以通过这里依次获得Vue实例
的初始化选项this.$options.myOptions
,即当加载到这个初始化选项时进行一些操作(如去加载后端字典数据)
export default {
components: {
},
myOption: ['123'],// 初始化选项
data() {
return {
}
}
...
- 完成了上面的全局混入插件,然后在入口js(如
main.js
)
Vue.use(dicts);
**
安装 Vue.js 插件**
。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法调用时,会将 Vue 作为参数传入。该方法需要在调用
new Vue()
之前被调用。(我们的export default {
初始化Vue实例
一样)当 install 方法被同一个插件多次调用,插件将只会被安装一次。
二、局部混入
import InfoApi from '$qn/code/mixin/info'
export default {
components: {
},
mixins: [InfoApi], //局部混入后,在实例上可以获取到混入对象(其中js中的方法),并以此访问接口
...
- 选项合并
当混入对象和组件有对象时,优先执行组件内的同名对象,发生冲突时以组件数据优先。
ok,到这里
\(^o^)/~
更多推荐
已为社区贡献7条内容
所有评论(0)