mixin
官网上:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
个人理解:mixin就是全局注册一个混入,注册之后所有创建的每个 Vue 实例。例如给全部文件添加一些公用的实例(如方法、过滤器等)插件作者可以使用混入,向组件注入自定义的行为。不推荐在应用代码中使用。
1.新建文件mixin.js
//抛出混入对象,方便外部访问
export const mixin = {
data() {
return {
}
},
methods: {
},
}
export default mixin
2.在main.js全局引用
import mixin from "./mixin";
Vue.mixin(mixin);
3.其他vue页面里面就可以使用mixin里面定义好的方法,和数据如:
export const mixin = {
data() {
return {
tip: false,
number: 10,
}
},
methods: {
clickShow() {
this.tip = !this.tip
},
alerts() {
alert('对不起,请重试')
},
},
}
export default mixin
4.在页面引用:
<div>
page1的值是:{{number}}{{tip}}
<button @click="clickShow">显示隐藏</button>
<div v-if="tip">我是mixin控制显示隐藏的</div>
</div>
组件与mixin的区别是:
组件:在父组件中引入组件,相当于在父组件中给出一片独立的空间供子组件使用,然后根据props来传值,但本质上两者是相对独立的。
Mixins:则是在引入组件之后与组件中的对象和方法进行合并,相当于扩展了父组件的对象与方法,可以理解为形成了一个新的组件。
但要注意的是,如果页面有组件有mxins两者并且有键值冲突时优先会以组件的值为准。我一般都用它是管理一些全局的弹框,显示隐藏一类的。
网友评论