vue 中元件完成了樣式和功能的綜合複用,通過自定義指令完成了一部分功能的複用,本文總結一下混入在vue項目開發中提供的非常便利的功能複用。
上面的代碼中,vue.mixin方法中傳入一個混入的對象,該對象為 created 鈎子函數,在app元件加載過程中調用了該鈎子函數,結果如下:
上面的代碼中通過字面量的形式建立了一個對象變量 myMixin ,在兩個子元件和 Vue(#app) 父元件中分别混入了這個對象,是以三個地方會調用該混入對象,首先app父元件調用,然後才是子元件調用,結果如下:

上面的代碼中定義了一個myMixin的變量,在子元件和app父元件中都混入了該變量,同時每個元件内部也使用了該對象對應的鈎子函數,同名的鈎子函數出現時出現的結果如下:
注意:當元件和混入對象含有同名選項時,同名的鈎子函數将合并為一個數組,是以都将被調用,但是混入對象的鈎子函數将在自身元件鈎子函數之前調用。
上面的代碼中通過字面量的形式建立一個混入對象 myMinxin ,在父元件( #app )和兩個子元件中分别混入了該對象,其中元件内部 data 對象和混入對象存在同名屬性,結果如下:
注意:當混入對象為data資料對象時,資料對象會在元件内部進行遞歸合并,當混入對象群組件data同名沖突的時候,元件中的 data 會覆寫混入對象的 data 屬性。
上面的代碼中,定義了一個含methods屬性的混入對象,在父元件(app)和兩個子元件中分别混入該對象,其中元件内部存在和混入對象同名的方法時候結果如下:
注意:當混入對象屬性為methods、cpmponents、directive 時,這些屬性會在元件内部進行遞歸合并,當混入對象群組件内部屬性同名沖突的時候,元件中的屬性會覆寫混入對象的屬性。
vue中的混入提供了一種非常靈活的方式來分發元件中可複用的功能,很大程度上提高了代碼的複用性,混入有點類似與繼承,當子元件對象繼承了父元件對象,一般情況下遵循就近原則,但是混入又不完全等同于繼承,vue混入存在對不同配置的混入政策。
以上就是本文的全部内容,希望給讀者帶來些許的幫助和進步,友善的話點個關注,小白的成長之路會持續更新一些工作中常見的問題和技術點。最後,大家國慶節快樂!!!