vue.js深入篇(六、混合)

vue.js深入篇(六、混合)

vue.js深入篇(六、混合)

基礎

混合是一種靈活的分佈式複用 Vue 組件的方式。混合對象可以包含任意組件選項。以組件使用混合對象時,所有混合對象的選項將被混入該組件本身的選項。

例子:

vue.js深入篇(六、混合)

選項合併

當組件和混合對象含有同名選項時,這些選項將以恰當的方式混合。比如,同名鉤子函數將混合為一個數組,因此都將被調用。另外,混合對象的 鉤子將在組件自身鉤子 之前 調用 :

vue.js深入篇(六、混合)

值為對象的選項,例如 methods, components 和 directives,將被混合為同一個對象。 兩個對象鍵名衝突時,取組件對象的鍵值對。

vue.js深入篇(六、混合)

注意: Vue.extend() 也使用同樣的策略進行合併。

全局混合

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

vue.js深入篇(六、混合)

謹慎使用全局混合對象,因為會影響到每個單獨創建的 Vue 實例(包括第三方模板)。大多數情況下,只應當應用於自定義選項,就像上面示例一樣。 也可以將其用作 Plugins 以避免產生重複應用

自定義選項混合策略

自定義選項將使用默認策略,即簡單地覆蓋已有值。 如果想讓自定義選項以自定義邏輯混合,可以向 Vue.config.optionMergeStrategies 添加一個函數:

vue.js深入篇(六、混合)

對於大多數對象選項,可以使用 methods 的合併策略:

vue.js深入篇(六、混合)

更多高級的例子可以在 Vuex 1.x的混合策略裡找到:

vue.js深入篇(六、混合)


分享到:


相關文章: