美文网首页
Vue之mixin和mixins

Vue之mixin和mixins

作者: 子语喵 | 来源:发表于2020-04-22 11:01 被阅读0次

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两者并且有键值冲突时优先会以组件的值为准。我一般都用它是管理一些全局的弹框,显示隐藏一类的。

相关文章

网友评论

      本文标题:Vue之mixin和mixins

      本文链接:https://www.haomeiwen.com/subject/zjbbihtx.html