基礎
混合是一種靈活的分佈式複用 Vue 組件的方式。混合對象可以包含任意組件選項。以組件使用混合對象時,所有混合對象的選項將被混入該組件本身的選項。
例子:
選項合併
當組件和混合對象含有同名選項時,這些選項將以恰當的方式混合。比如,同名鉤子函數將混合為一個數組,因此都將被調用。另外,混合對象的 鉤子將在組件自身鉤子 之前 調用 :
值為對象的選項,例如 methods, components 和 directives,將被混合為同一個對象。 兩個對象鍵名衝突時,取組件對象的鍵值對。
注意: Vue.extend() 也使用同樣的策略進行合併。
全局混合
也可以全局註冊混合對象。 注意使用! 一旦使用全局混合對象,將會影響到 所有 之後創建的 Vue 實例。使用恰當時,可以為自定義對象注入處理邏輯。
謹慎使用全局混合對象,因為會影響到每個單獨創建的 Vue 實例(包括第三方模板)。大多數情況下,只應當應用於自定義選項,就像上面示例一樣。 也可以將其用作 Plugins 以避免產生重複應用
自定義選項混合策略
自定義選項將使用默認策略,即簡單地覆蓋已有值。 如果想讓自定義選項以自定義邏輯混合,可以向 Vue.config.optionMergeStrategies 添加一個函數:
對於大多數對象選項,可以使用 methods 的合併策略:
更多高級的例子可以在 Vuex 1.x的混合策略裡找到:
閱讀更多 看到他請叫他快去學習 的文章