有兩個非常相似的元件,他們的基本功能是一樣的,但他們之間又存在著足夠的差異性,此時的你就像是來到了乙個分岔路口:我是把它拆分成兩個不同的元件呢?還是保留為乙個元件,然後通過props傳值來創造差異性從而進行區分呢?
兩種解決方案都不夠完美:如果拆分成兩個元件,你就不得不冒著一旦功能變動就要在兩個檔案中更新**的風險,這違背了 dry 原則。反之,太多的props傳值會很快變得混亂不堪,從而迫使維護者(即便這個人是你)在使用元件的時候必須理解一大段的上下文,拖慢寫碼速度。
使用mixin。vue 中的mixin對編寫函式式風格的**很有用,因為函式式程式設計就是通過減少移動的部分讓**更好理解(引自 michael feathers )。mixin允許你封裝一塊在應用的其他元件中都可以使用的函式。如果使用姿勢得當,他們不會改變函式作用域外部的任何東西,因此哪怕執行多次,只要是同樣的輸入你總是能得到一樣的值,真的很強大!
我們有一對不同的元件,它們的作用是通過切換狀態(boolean型別)來展示或者隱藏模態框或提示框。這些提示框和模態框除了功能相似以外,沒有其他共同點:它們看起來不一樣,用法不一樣,但是邏輯一樣。
混入 (mixin) 提供了一種非常靈活的方式,來分發 vue 元件中的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被「混合」進入該元件本身的選項。
vue中mixin 混入 的學習
混入 mixin 提供了一種非常靈活的方式,來分發 vue 元件中的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 進入該元件本身的選項。index.vue index mixin.js export default created methods ...
vue系列 混入(mixin)
一 混入的理解 1 混入 mixin 就是乙個vue物件,你可以認為,混入是把每個vue元件的公共部分的內容抽取出來了。即提高了 的復用性。2 假設每個vue元件裡的都有同樣的函式testf,而且完成的功能是一模一樣的,怎麼辦,不能像原生js那樣單獨封裝個函式吧,肯定不行,那這就是混入 mixin ...
應用三 Vue之混入 mixin 與全域性混入
注 本文適用於有一定vue基礎或開發經驗的讀者,文章就知識點的講解不一定全面,但卻是開發過程中很實用的 首先介紹一下混入mixin的概念 官方文件 混入提供了一種非常靈活的方式,來分發 vue 元件中的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 ...