mixins定义了一些可重用的方法或计算属性。Mixin可以包含任意组件选项。当组件使用mixin时,mixin的所有选项都会混合到组件本身的选项中。让我们看一个简单的例子:instancevarvm=newVue({el:'#databinding',data:{},methods:{},});//定义一个混合对象varmyMixin={created:function(){this.startmixin()},methods:{startmixin:function(){document.write("Welcometothemixininstance");}}};varComponent=Vue.extend({mixins:[myMixin]})varcomponent=newComponent();选项合并当组件和混入具有相同名称的选项时,这些选项将以适当的方式混合。例如,数据对象内部会进行浅合并(一层属性深度),当与组件数据发生冲突时,组件数据优先。在下面的示例中,Vue实例包含与混合对象相同的方法。从输出中可以看出,两个选项合并了。示例varmixin={created:function(){document.write('mixedcall'+'
')}}newVue({mixins:[mixin],created:function(){document.write('component调用'+'
')}});输出结果为:mixedincallcomponentcall如果methods选项有相同的函数名,Vue实例的优先级会更高。在下面的示例中,Vue实例的方法选项和混合对象都包含相同的函数:instancevarmixin={methods:{hellworld:function(){document.write('HelloWorldmethod'+'
');},samemethod:function(){document.write('Mixin:相同的方法名'+'
');}}};varvm=newVue({mixins:[mixin],methods:{start:function(){document.write('startmethod'+'
');},samemethod:function(){document.write('Main:samemethodname'+'
');}}});vm.hellworld();vm.start();vm.samemethod();输出为:HelloWorldmethodstartMethodMain:上面的实例同方法名,我们调用下面三个方法:vm.hellworld();vm.start();vm。相同的方法();
