methods、components、directives
mixins定義:
mixins選項接受一個混入對象的數組,類型:Array<Object>
mixins原理:
真正的實現是靠mergeOptions函數實現的。
這個函數傳進去的兩個參數分別是this.options 和 mixin,而mergeOptions函數則實現了遞歸遍歷this.options,然后執行mergeField,返回最終合並的this.options
mergeField函數:一般我們執行mergeField 里的key基本上就是上面strats的屬性了,用的最多的可能就是data、methods、props了,所以如果我們在mixins中用到了data,其本質上就是合並當前vue實例對象里的data和我們傳進去的mixin里的data,其他屬性也是一樣的
合並策略:
1、data
mixins中的data會合並到實例中的data中,有沖突的話,實例中data的數據會覆蓋mixins中的數據
2、鈎子函數
mixins中和實例中的鈎子函數,都會執行,先執行mixins中的鈎子函數
3、methods、components、directives
methods、components、directives會執行,當有沖突的時候,實例中的會覆蓋mixins中的