用React+Mobx到底該不該寫一個CheckBox元件
從接觸React到現在有幾個月了,對React的理解也在不斷的加深。
最開始還是在拿React當工具用,嗯,就是比模板引擎牛逼點的工具。
後來覺得React在顛覆,顛覆自己對html的認識,或者說我更能理解到React是希望程式設計師(我)摒棄掉html的概念
換句話說,如果寫一些類似Div的元件就能徹底不使用html了呢
也就是“構建跨終端的元件”,以前一直不理解,現在理解了(之前還為此跟一個前輩爭論了呢,憑我倔強的性格,相比肯定是氣到了這位前輩)
既然差不多理解了React的元件,那什麼時候寫元件呢?
我按照以前寫html的習慣,像button啦,form感覺都應該寫一個元件。
也就是說,我寫元件的第一個想法還是模擬html標籤(現在我給我自己的元件也統稱為偽標籤)。
當我遇到checkbox的時候,我有點糾結了,按理說應該寫一個CheckBox,還要再寫一個CheckBoxGroup,antd就是這麼幹的
但是!用Mobx以後,會發現,寫一個CheckBox,最終管理資料的還是Mobx
打個比方:你有一個數組,裡面有3個物件,物件的屬性都是label、value、checked,要麼把這個陣列放在CheckBoxGroup裡,要麼就放在一個迴圈裡。
實際上CheckBoxGroup的工作也只是迴圈一下陣列,然後顯示出陣列中的label,和根據checked來顯示不同的樣式。
那用CheckBoxGroup和不同,其實從程式碼角度來講已經沒有什麼區別了,因為也沒有太好的複用性,至於效能,我就不好評估了。
剩下的就是樣式了,我一直覺得元件複用的只是一部分邏輯,更多的是樣式(也可以說是標準)。
就是網站都用一個button元件,樣式有一定的規範,通過引用達到整個網站的統一,修改的時候也不用全改。
那也就是說,元件有兩種建立的理由:邏輯和樣式
暫時到這吧,最終的結論:為了網站的一致性,還是要有一個統一的樣式把CheckBox封裝起來的,雖然這樣做對邏輯並沒有什麼卵用。
PS:如果只是單純的規範化樣式,可以用sass