国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

深入了解Vue.js 混入(mixins)

瀏覽:113日期:2022-12-29 15:42:49

混入 (mixins)定義了一部分可復用的方法或者計算屬性。混入對象可以包含任意組件選項。當組件使用混入對象時,所有混入對象的選項將被混入該組件本身的選項。

來看一個簡單的實例:

var vm = new Vue({ el: ’#databinding’, data: { }, methods : { },});// 定義一個混入對象var myMixin = { created: function () { this.startmixin() }, methods: { startmixin: function () { document.write('歡迎來到混入實例'); } }};var Component = Vue.extend({ mixins: [myMixin]})var component = new Component();

選項合并

當組件和混入對象含有同名選項時,這些選項將以恰當的方式混合。

比如,數據對象在內部會進行淺合并 (一層屬性深度),在和組件的數據發生沖突時以組件數據優先。

以下實例中,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 實例有更高的優先級會執行輸出。

全局混入

也可以全局注冊混入對象。注意使用! 一旦使用全局混入對象,將會影響到 所有 之后創建的 Vue 實例。使用恰當時,可以為自定義對象注入處理邏輯。

// 為自定義的選項 ’myOption’ 注入一個處理器。Vue.mixin({ created: function () { var myOption = this.$options.myOption if (myOption) { console.log(myOption) } }}) new Vue({ myOption: ’hello!’})// => 'hello!'

謹慎使用全局混入對象,因為會影響到每個單獨創建的 Vue 實例 (包括第三方模板)。

以上就是深入了解Vue.js 混入的詳細內容,更多關于Vue.js 混入的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 鹤峰县| 惠安县| 阿尔山市| 宝鸡市| 桃江县| 民权县| 巴马| 大兴区| 无棣县| 资阳市| 阿拉尔市| 布拖县| 铜梁县| 梁山县| 乌拉特后旗| 肥西县| 凤山市| 玉龙| 兴宁市| 富顺县| 平陆县| 六枝特区| 崇左市| 武平县| 长兴县| 昭苏县| 许昌县| 沈阳市| 南通市| 余干县| 安仁县| 全椒县| 祁东县| 安徽省| 保康县| 明溪县| 拉孜县| 沐川县| 光泽县| 五河县| 虹口区|