vue---mixins的用法

本文详细介绍了Vue.js中mixins的使用方法,包括混入对象的创建、数据合并规则及生命周期钩子的执行顺序。通过实例展示了混入如何影响组件的数据和方法,同时对比了预编译语言如Less中的类似概念。混入提供了一种方式来复用组件选项,避免代码重复,提高开发效率。
摘要由CSDN通过智能技术生成

vue—mixins的用法

最近接手项目,使用mixins混入对象,总结一下,不喜勿喷哦!

官网的说明:混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

大致意思就是:
1) 混入对象的内容必须是一个对象。
2) 当使用混入时,相同的内容都会合并。
3) 数据对象如果有相同的,则以被混入的对象中data数据为准

  • 元素
<div id="box">{{name}}:{{age}},{{sex}},{{print()}},{{say}} </div>
  • js
var mix={
    el:"#box",
    data:{
        age:18,
        sex:'female',
        name:'程序员'
    },
    mounted:function(){
        this.age++;
        console.log(this.age)//11
    },
    computed:{
        say:function(){
            return '我在mix里面'
        }
    },
    methods:{
        print:function(){
            return '这里是mix';
        }
    }
}

new Vue({
//    el:"#box",
    mixins:[mix],
    data:{
        age:10
    },
    mounted:function(){
        this.age+=2;
        console.log(this.age)//13
        this.sex='male';
    },
    computed:{
        say:function(){
            return '我在new Vue里面'
        }
    },
    methods:{
        print:function(){
            return '这里是new Vue';
        }
    }
})

结果

程序员:13,male,这里是new Vue,我在new Vue里面。

== 注意==
1) 混入的方法methods,计算属性computed ,组件components,数据data等,只要值是为对象的,都是会被合并的。并且如果有相同的键值 , 则会以 被混入对象中的 键值 即 以实例(或对象)中的内容为准。

2) 比如在 data 中 age 这一项是相同的,这个时候是以 被混入 的对象中数据 优先 。

3) 所以 age 是 13 就很好理解了。 首先 被混入的对象的data数据优先,那么 age就是 10 ;然后 到达生命周期 mounted 的时候,混入的对象中的代码,执行一次,被混入的实例中的代码,再执行一次。 所以最终的结果就是13。

vue项目中都用过less、sass等预编译器。它们中也有mixins,用法也很简单,例如Less中:

.box{
  border:1px solid red;
  padding:10px;    
}
.mixin{
  .box;
  margin:10px;    
}

修改之后就是

.box{
  border:1px solid red;
  padding:10px;    
}
.mixin{
  border:1px solid red;
  padding:10px;
  margin:10px;    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值