发表于: 2020-03-28 21:53:49

0 1653


今日完成

今日完成


选项合并


当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。


比如,数据对象在内部会进行浅合并 (一层属性深度),在和组件的数据发生冲突时以组件数据优先。


以下实例中,Vue 实例与混入对象包含了相同的方法。从输出结果可以看出两个选项合并了。


var mixin = {


    created: function () {


        document.write('混入调用' + '<br>')


    }


}


new Vue({


    mixins: [mixin],


        created: function () {


        document.write('组件调用' + '<br>')


    }


});


输出结果为:


混入调用


组件调用


如果 methods 选项中有相同的函数名,则 Vue 实例优先级会较高。如下实例,Vue 实例与混入对象的 methods 选项都包含了相同的函数:


var mixin = {


    methods: {


        hellworld: function () {


            document.write('HelloWorld 方法' + '<br>');


        },


        samemethod: function () {


            document.write('Mixin:相同方法名' + '<br>');


        }


    }


};


var vm = new Vue({


    mixins: [mixin],


    methods: {


        start: function () {


            document.write('start 方法' + '<br>');


        },


        samemethod: function () {


            document.write('Main:相同方法名' + '<br>');


        }


    }


});


vm.hellworld();


vm.start();


vm.samemethod();


输出结果为:


HelloWorld 方法


start 方法


Main:相同方法名


以上实例,我们调用了以下三个方法:


vm.hellworld();


vm.start();


vm.samemethod();


从输出结果 methods 选项中如果碰到相同的函数名则 Vue 实例有更高的优先级会执行输出。


返回列表 返回列表
评论

    分享到