vue存在一個(gè)叫做混入的東西,官方文檔給的解釋是:
混入 (mixin) 提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復(fù)用功能。一個(gè)混入對(duì)象可以包含任意組件選項(xiàng)统诺。當(dāng)組件使用混入對(duì)象時(shí),所有混入對(duì)象的選項(xiàng)將被“混合”進(jìn)入該組件本身的選項(xiàng)
我對(duì)它的理解是繼承疑俭,就像extends一樣粮呢,只不過vue在組件中使用關(guān)鍵字mixins,所以我就用繼承的特點(diǎn)來理解混入
1.子類可以使用父類的屬性或方法:
組件的“父類”中定義一個(gè)data怠硼、methods鬼贱、computed等,只要組件中混入了這個(gè)父類香璃,那么就可以在組件中使用父類相應(yīng)的方法或?qū)傩?/p>
2.子類將會(huì)覆蓋父類的同名屬性或方法:
組件中定義一個(gè)方法这难,然而它混入的“父類”中已經(jīng)定義了這個(gè)方法,那么子類將會(huì)覆蓋“父類”的這個(gè)方法葡秒,這個(gè)就像css中定義了一個(gè)class但是在元素上又定義了一個(gè)style姻乓,那么style中的屬性將會(huì)覆蓋class中的同名屬性
3.子類的構(gòu)造函數(shù)和父類的構(gòu)造函數(shù)都會(huì)觸發(fā)
在組件中有個(gè)很重要的東西叫做鉤子函數(shù),這個(gè)就像類中的構(gòu)造函數(shù)眯牧,子類和父類中都有構(gòu)造函數(shù)蹋岩,當(dāng)調(diào)用這個(gè)子類時(shí),子類的構(gòu)造函數(shù)和父類的構(gòu)造函數(shù)就都會(huì)觸發(fā)学少,并且父類的構(gòu)造函數(shù)將會(huì)在子類的構(gòu)造函數(shù)之前觸發(fā)剪个。
4.類的基類
假如所有的組件中都需要某個(gè)方法或數(shù)值,那么我們?cè)谒械慕M件中都混入會(huì)不會(huì)感覺很繁瑣版确?這個(gè)時(shí)候我們可以使用全局混入
Vue.mixin({
methods or data
})
它就像定義了一個(gè)基類扣囊,然后我們所有使用的類都默認(rèn)繼承于它乎折,這樣就不用再一次次的重復(fù)引入。