Vue中混入mixin的用法介紹
更新時間:2022年10月17日 11:15:04 作者:愛思考的豬
混入 (mixin) 提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復用功能。一個混入對象可以包含任意組件選項。當組件使用混入對象時,所有混入對象的選項將被“混合”進入該組件本身的選項
什么是混入?
混入通過注入配置項到vue實例用來提升復用性
基礎使用
const myMixin = {
created: function () {
this.hello();
},
methods: {
hello: function () {
console.log('hello from mixin');
},
},
};
var vm = new Vue({
el: '#app',
mixins: [myMixin],
});選項合并
選項合并發(fā)生在下面兩種情況
- mixins接收的是一個數組,mixin中的屬性沖突時會發(fā)生合并
- mixin屬性和組件原有屬性沖突時
const myMixin = {
created: function () {
this.hello();
},
methods: {
hello: function () {
console.log('hello from mixin');
},
},
};
var vm = new Vue({
el: '#app',
mixins: [myMixin],
created: function () {
this.hello();
},
methods: {
hello: function () {
console.log('hello from vue instance');
},
},
});
上述兩種的選項合并規(guī)則是相同的:
- 周期鉤子沖突的時候,會合并成數組都保留,執(zhí)行順序是先執(zhí)行minxi的鉤子,再執(zhí)行組件上的鉤子
- methods、computed這類值為對象的選項在沖突的時候以組件屬性為準
自定義合并規(guī)則
除了使用上述默認的合并規(guī)則,還可以通過Vue.config.optionMergeStrategies自定義合并規(guī)則。
Vue.config.optionMergeStrategies.myMixin=(toVal, fromVal){
//返回合并的值
};
通常對于值為對象的屬性我們可以借用已有的合并規(guī)則
//借用methods的規(guī)則 Vue.config.optionMergeStrategies.myMixin=Vue.config.optionMergeStrategies.methods;
全局混入
混入也可以全局注冊,使用時候要格外小心,它會影響到每一個組件/實例
Vue.mixin({
created: function () {
console.log('mixin created');
},
});
var vm1 = new Vue(...);
var vm2 = new Vue(...);
總結
- mixin混入通過注入配置項到vue實例提升復用性
- 屬性沖突時以組件內的屬性為準,聲明周期的鉤子會保留多個
到此這篇關于Vue中混入mixin的用法介紹的文章就介紹到這了,更多相關Vue mixin內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決vue-element-admin安裝依賴npm install報錯問題
這篇文章主要介紹了解決vue-element-admin安裝依賴npm install報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
優(yōu)化Vue template中大量條件選擇v-if的方案分享
本文我們將給大家詳細的講解一下如何優(yōu)化Vue template 中的大量條件選擇v-if,文中通過代碼示例介紹的非常詳細,有詳細的優(yōu)化方案,感興趣的朋友可以參考閱讀下2023-07-07

