vuejs 開發中, 有必要把button, input封裝成組件嘛?
第一次接觸VueJS開發,用的是vue-cli的模版, 我想問問, 有必要把button, input, 等封裝成組件嘛? 按照VueJs的組件化思想, 理論上來說是可以的, 但是如果封裝的話, 感覺又太細了, 疑惑中! 對了本人以前是用AngularJs1.X做開發的! 很多理論, 也接觸過了!
封裝其實是你業務驅動的,做項目的時候,或多或少都有重複的組件。
那麼理所當然的你會封裝一些組件,比如下面的input
像title,顏色什麼的都是可定義比較強的
如果是長期維護一個系統,或者想做一套自己的組件庫,封裝吧,以後事半功倍。
如果是中小型項目,拿錢走人的類型,速度第一,別封裝粒度太小了,折騰自己
有時間封裝就封裝,沒時間就不用封裝。
優化原則:
1. 重複代碼出現第三次時再封裝
2. 有特殊的邏輯就封裝一下
搞不懂問這些問題的人,你要是問怎麼封裝,這是技術上的事情,但問要不要封裝,這不屬於技術上的事,很明顯的,封裝肯定能增加後期開發效率,但封裝會消耗前期開發時間,明白這點不就知道要不要了,還非得問?給人的感覺就是你想找一個技術導師,但誰能當你的技術導師呢?誰也不能,因為不了你的項目需求和進度。萬金油的回答就是,你要開發速度就不封裝,要逼格要後期開發效率就封裝。
我一般會會封裝,其實這種應該算是樣式組件,比如說帶圖標的按鈕、只有文字的按鈕、二者皆有的按鈕、有複雜交互動畫的按鈕....... 封裝好後,就可根據傳遞的參數調用不同類型的按鈕了,很方便
按照功能與實際情況來考慮。
如果這個button的內部邏輯或者樣式比較複雜,然後整個項目中又多處用到,那麼完全可以封裝為一個組件。
其實主要還是根據復用程度,比如我一個內容分割線,項目中多處用到,那我為何不封裝為一個組件,只需要標籤就可以簡單調用了呢?
看你的具體需求,例如說知乎的「點贊」的按鈕,:
- 復用的需求高(主頁,問題頁面)
- 與其它組件的耦合度低(只需要獲得用戶id,問題、答案id)
- 自身的處理邏輯比較多(用戶是否 贊同/反對 該答案,該答案的贊同數,用戶點擊了 贊同/反對)
這樣,這個按鈕是適合做成一個單獨的組件的。
但是像問題詳情下面的「顯示全部」按鈕,是不適合做成單獨的組件的,因為它:
- 功能比較單一
- 與問題組件的耦合度較高
如果做成組件,那麼需要以事件的方式來改變」問題詳情「的顯示界面,而實際上只需要在當前組件里添加一個按鈕就可以完成功能。
謝邀,我自己結合實踐回答一下,常用的控制項封裝有兩種方式:
1、嚴格按照組件封裝,樣式全部寫為組件私有樣式,然後在import到別的組件,最後組裝成頁面
2、寫到全局樣式,在組件中通過公共樣式來調用,類似於BootStrap之類的UI庫
目前我開發的項目,兩種混合用,沒有明確的感知到好與壞,倒是覺得公共樣式復用起來可能會方便一些吧,僅供參考
推薦閱讀:
TAG:JavaScript | Vuejs |