標籤:

vuejs 開發中, 有必要把button, input封裝成組件嘛?

第一次接觸VueJS開發,用的是vue-cli的模版, 我想問問, 有必要把button, input, 等封裝成組件嘛? 按照VueJs的組件化思想, 理論上來說是可以的, 但是如果封裝的話, 感覺又太細了, 疑惑中! 對了本人以前是用AngularJs1.X做開發的! 很多理論, 也接觸過了!


封裝其實是你業務驅動的,做項目的時候,或多或少都有重複的組件。

那麼理所當然的你會封裝一些組件,比如下面的input

像title,顏色什麼的都是可定義比較強的


如果是長期維護一個系統,或者想做一套自己的組件庫,封裝吧,以後事半功倍。

如果是中小型項目,拿錢走人的類型,速度第一,別封裝粒度太小了,折騰自己


有時間封裝就封裝,沒時間就不用封裝。

優化原則:

1. 重複代碼出現第三次時再封裝

2. 有特殊的邏輯就封裝一下


搞不懂問這些問題的人,你要是問怎麼封裝,這是技術上的事情,但問要不要封裝,這不屬於技術上的事,很明顯的,封裝肯定能增加後期開發效率,但封裝會消耗前期開發時間,明白這點不就知道要不要了,還非得問?

給人的感覺就是你想找一個技術導師,但誰能當你的技術導師呢?誰也不能,因為不了你的項目需求和進度。萬金油的回答就是,你要開發速度就不封裝,要逼格要後期開發效率就封裝。


我一般會會封裝,其實這種應該算是樣式組件,比如說帶圖標的按鈕、只有文字的按鈕、二者皆有的按鈕、有複雜交互動畫的按鈕....... 封裝好後,就可根據傳遞的參數調用不同類型的按鈕了,很方便


按照功能與實際情況來考慮。

如果這個button的內部邏輯或者樣式比較複雜,然後整個項目中又多處用到,那麼完全可以封裝為一個組件。

其實主要還是根據復用程度,比如我一個內容分割線,項目中多處用到,那我為何不封裝為一個組件,只需要標籤就可以簡單調用了呢?


看你的具體需求,例如說知乎的「點贊」的按鈕,:

  • 復用的需求高(主頁,問題頁面)
  • 與其它組件的耦合度低(只需要獲得用戶id,問題、答案id)
  • 自身的處理邏輯比較多(用戶是否 贊同/反對 該答案,該答案的贊同數,用戶點擊了 贊同/反對)

這樣,這個按鈕是適合做成一個單獨的組件的。

但是像問題詳情下面的「顯示全部」按鈕,是不適合做成單獨的組件的,因為它:

  • 功能比較單一
  • 與問題組件的耦合度較高

如果做成組件,那麼需要以事件的方式來改變」問題詳情「的顯示界面,而實際上只需要在當前組件里添加一個按鈕就可以完成功能。


謝邀,我自己結合實踐回答一下,常用的控制項封裝有兩種方式:

1、嚴格按照組件封裝,樣式全部寫為組件私有樣式,然後在import到別的組件,最後組裝成頁面

2、寫到全局樣式,在組件中通過公共樣式來調用,類似於BootStrap之類的UI庫

目前我開發的項目,兩種混合用,沒有明確的感知到好與壞,倒是覺得公共樣式復用起來可能會方便一些吧,僅供參考


推薦閱讀:

有哪些好用的ajax組件?

TAG:JavaScript | Vuejs |