Mixin

本文详细介绍了Vue.js中的混入(mixin)机制,包括如何定义混入、如何在组件中使用混入,以及混入与组件属性冲突时的处理规则。通过示例展示了Home组件和News组件如何共享msg属性和changeMsg方法。当混入和组件中有相同属性时,组件内的属性优先级高于混入中的属性。
摘要由CSDN通过智能技术生成

Mixin混入


混入

1 加入多个组件需要用到相同的属性、方法、监听器、计算属性…此时就可以定义一个公共混入
2 定义混入 混入的结构和组件结构一致
3 使用混入 在需要使用混入的组件中增加mixins属性 属性值为数组 ,数组里面放需要 使用的混入(可以多个)
例如:

// Home组件和News组件都需要用到msg和changeMsg事件
//定义一个混入
const mixin1 = {
    data () {
      return {
        msg:"hello"
      }
    },
    methods: {
      changeMsg () {
        this.msg = "改变了"
      }
    }
  }
 let Home = {
    template:`
    <div>
      home组件
      {{ msg }}
      <button @click="changeMsg">按钮</button>
    </div>`,
    mixins:[mixin1]//将定义好的混入放到数组中
  }
  let News = {
    template:`
    <div>
      news组件
      {{ msg }}
    </div>`,
    mixins:[mixin1]//将定义好的混入放到数组中
  }
  Vue.component('Home',Home)
  Vue.component('News',News)
  let vm = new Vue({
    el:'#app',
    data: { 
    }
  })

注意

如果混入里面的属性与组件中的属性冲突时,则会优先使用组件中的属性

//混入中存在 msg 为  hello
 const mixin1 = {
    data () {
      return {
        msg:"hello"
      }
    },
    methods: {
      changeMsg () {
        this.msg = "改变了"
      }
    }
   }
   //此时Home组件中也存在 msg 为 123
   let Home = {
    data () {
      return {
        msg:123
      }
    },
    template:`
    <div>
      home组件
      {{ msg }}
      <button @click="changeMsg">按钮</button>
    </div>`,
    mixins:[mixin1]//将定义好的混入放到数组中
  }
// 此时msg在页面中显示的是Home组件中的msg 123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值