【為什么要使用mixin】
有兩個非常相似的組件,它們的功能有很多重合項,但是又有着很多的差異性,這個時候有兩種方法,一是寫成一個組件,用props進行自定義;二是直接分成兩個組件。
如果是使用兩個組件的話,相同代碼過多,過分冗余,其次當要修改功能的時候,要改兩個組件,比較麻煩;如果使用一個組件的話,利用大量的props進行定義,當在使用組件的時候,可能要花費大量的事件去理解props上下文關系,拖慢速度。
這個時候,mixin混入就有很好的用處了,它可以提取公共部分在一個混入對象中,然后合並至其它組件中進行使用。
【選項合並】
數據對象:淺拷貝方式進行合並,並且以組件對象中的數據為主;
生命周期鈎子函數:以數組形式進行合並,都會進行調用,混入對象中的鈎子函數先執行;
值為對象的選項(比如methods、components等)會混合為同一個對象,健名沖突時以組件對象的為主。
【參考文章】