Vue 混合

混合(mixins)是一种分发vue组件中可复用功能的非常灵活的方式。混合对象可以可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混合到该组件本身的选项。

//定义一个混合对象

var myMixins = {

created:function(){

this.hello();

},

methods:{

hello:function(){

console.log('hello from mixin!');

}

}

}

//定义一个使用混合对象的组件

var Component = vue.extend({

mixins:[myMIxins]

});

 

var component = new Component();// -->hello from mixin!

 

选项合并

 

当组件和混合对象含有同名选项时,这些选项将以恰当的方式混合。比如,同名钩子函数将混合为一个数组,因此都将被调用。

混合对象的钩子将在组件自身钩子之前调用。

var mixin = {
created: function () {
console.log('混合对象的钩子被调用')
}
}
 
new Vue({
mixins: [mixin],
created: function () {
console.log('组件钩子被调用')
}
})

值为对象的选项,例如methods,component ,和directives,将被混合为同一个对象,两个对象键名冲突时,取组件对象的键值对。

var mixin = {

methods:function(){

console.log('foo')

}

conflicting:function(){

console.log('mixin')

}

}

var vm = new Vue({

mixins:[mixin],

methods:{

bar:function(){

console.log('bar')

},

conflicting:function(){

console.log('from self')

}

}

})

vm.foo();

vm.bar();

vm.conflicting();

 

转载于:https://www.cnblogs.com/susanws/p/7429256.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值