一、混入的理解:
1、混入(mixin)就是乙個vue物件,你可以認為,混入是把每個vue元件的公共部分的內容抽取出來了。即提高了**的復用性。
2、假設每個vue元件裡的都有同樣的函式testf,而且完成的功能是一模一樣的,怎麼辦,不能像原生js那樣單獨封裝個函式吧,肯定不行,那這就是混入(mixin)的最簡單的理解。
示例:
var mymixin =
},created: function () ,
methods:
},template: `this is in foo
`}
哈哈,你有沒有發現,跟定義乙個vue元件的**是一樣的。data,methods,template等等樣樣俱全。關鍵是在引入mixin物件時,才能看出來它是mixin。如何引入,在vue物件的建構函式裡增加 mixins屬性即可。
如:有個vue物件要引入以上的mixin物件時,如下**
new vue(
},created: function ()
})
二、混入物件和vue元件在合併時有幾條簡單的規則
1、data有相同時,以元件優先,這叫就近原則。
2、鉤子函式同名時,將合併為乙個陣列,因此都將被呼叫。另外,混入物件的鉤子將在元件自身鉤子之前呼叫。有點像原生中,乙個事件繫結了多個事件處理函式一樣(addeventlistener一樣)
3、methods
、components
和directives等物件也會合併,但是物件裡的鍵有衝突時,以元件優先,即
取元件物件的鍵值對。還是就近原則
三、混入的**示例:
可以參考官網的示例,我這個部落格主要是方便大家理解(ps:官網的文件總是比較「官方,官腔……」)
VUE的mixin混入解析
常用場景 有兩個非常相似的元件,他們的基本功能是一樣的,但他們之間又存在著足夠的差異性,此時的你就像是來到了乙個分岔路口 我是把它拆分成兩個不同的元件呢?還是保留為乙個元件,然後通過props傳值來創造差異性從而進行區分呢?兩種解決方案都不夠完美 如果拆分成兩個元件,你就不得不冒著一旦功能變動就要在...
vue中mixin 混入 的學習
混入 mixin 提供了一種非常靈活的方式,來分發 vue 元件中的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 進入該元件本身的選項。index.vue index mixin.js export default created methods ...
Vue學習筆記之混入 mixin
目錄 選項合併 全域性混入 自定義選項合併策略 混入 mixin 提供了一種非常靈活的方式,來分發vue元件的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 進入該元件本身的選項。定義乙個混入的物件 var mymixin methods 定義乙個使...