vue系列 混入(mixin)

2021-09-25 15:21:29 字數 926 閱讀 7140

一、混入的理解:

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、methodscomponentsdirectives等物件也會合併,但是物件裡的鍵有衝突時,以元件優先,即取元件物件的鍵值對。還是就近原則

三、混入的**示例:

可以參考官網的示例,我這個部落格主要是方便大家理解(ps:官網的文件總是比較「官方,官腔……」)

VUE的mixin混入解析

常用場景 有兩個非常相似的元件,他們的基本功能是一樣的,但他們之間又存在著足夠的差異性,此時的你就像是來到了乙個分岔路口 我是把它拆分成兩個不同的元件呢?還是保留為乙個元件,然後通過props傳值來創造差異性從而進行區分呢?兩種解決方案都不夠完美 如果拆分成兩個元件,你就不得不冒著一旦功能變動就要在...

vue中mixin 混入 的學習

混入 mixin 提供了一種非常靈活的方式,來分發 vue 元件中的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 進入該元件本身的選項。index.vue index mixin.js export default created methods ...

Vue學習筆記之混入 mixin

目錄 選項合併 全域性混入 自定義選項合併策略 混入 mixin 提供了一種非常靈活的方式,來分發vue元件的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 進入該元件本身的選項。定義乙個混入的物件 var mymixin methods 定義乙個使...