Vue組件化開發(fā)思考
一般說到組件,我首先想到的是彈窗,其他就大腦空白了。
因?yàn)橛X得這個是在項(xiàng)目中最常用的功能,提取出來方便復(fù)用的才是組件~
然而我才發(fā)現(xiàn)這個想法是有問題的。
我發(fā)覺可能從意識上把Vue的組件和UI庫的組件(彈窗之類的)混淆了。。。
緣起于最近的一個表單開發(fā),頁面上有2個是聯(lián)動菜單的選項(xiàng)。
首先想到的是,這個樣式和選擇地址的那個聯(lián)動菜單,完全一樣哈~
(廢話,同一個項(xiàng)目 當(dāng)然要保持ui風(fēng)格的相同?。。?br />
不過差別在于 我這個是 一個1級 一個2級, 地址那個是4級的.

然后我就想著把那個地址的組件引進(jìn)來用,發(fā)現(xiàn)這是個寫死4級的
這個時候我只想到2種辦法
1,分別改寫成1級選項(xiàng)和2級選項(xiàng)的2個組件(好像比較low)
2,引用4級聯(lián)動組件,改寫成可選1級選項(xiàng)或2級選項(xiàng)(有點(diǎn)麻煩,到時候還要測地址沒被我改壞)
3,重寫一個可以通用無限聯(lián)動菜單(方便可選級的)
最后選了3,自己重新搞了個。
至于為什么沒有整合2,主要考慮到這兩個組件所處的業(yè)務(wù)頁面不同邏輯也有些差異:
1獲取列表的邏輯可能不同,是一次性獲取4級還是每次只獲取1級或2級,
這個不確定的話,做成通用組件就都要處理了
2我這個是直接彈選項(xiàng)的,地址那個是跳新頁面再點(diǎn)擊彈選項(xiàng)的
我這個可以父子組件傳遞數(shù)據(jù),地址那個用了vuex(非父子)
總之就是實(shí)現(xiàn)成本和維護(hù)成本高,復(fù)用價值沒那么高。
相當(dāng)于2個頁面都各自有一個樣式相同邏輯不同的組件。
這完全是2個組件~
復(fù)制其通用樣式部分,在各自內(nèi)部實(shí)現(xiàn)其業(yè)務(wù)邏輯。
兩個組件放在不同的板塊內(nèi),相互獨(dú)立,方便管理和維護(hù)。
這個時候 再結(jié)合vue組件化的圖來看 你會清楚
對于組件化開發(fā)
分治(自有業(yè)務(wù)邏輯)比復(fù)用(相同邏輯) 更為重要!
復(fù)雜的業(yè)務(wù)邏輯配合vuex更方便實(shí)現(xiàn)組件化~
所以我理解組件化的組件是應(yīng)該泛指是 高內(nèi)聚低耦合(某phper講給我的專業(yè)名詞,不知道放這用對不對哈)的~

相關(guān)文章
vue實(shí)現(xiàn)全匹配搜索列表內(nèi)容
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)全匹配搜索列表內(nèi)容,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09
vue3?使用setup語法糖實(shí)現(xiàn)分類管理功能
這篇文章主要介紹了vue3?使用setup語法糖實(shí)現(xiàn)分類管理,本次模塊使用 vue3+element-plus 實(shí)現(xiàn)一個新聞?wù)镜暮笈_分類管理模塊,其中新增、編輯采用對話框方式公用一個表單,需要的朋友可以參考下2022-08-08

