目前來(lái)看,團(tuán)隊(duì)內(nèi)部前端項(xiàng)目已全面實(shí)施組件化開發(fā)。組件化的好處太多,如:按需加載、可復(fù)用、易維護(hù)、可擴(kuò)展、少挖坑、不改組件代碼直接切成服務(wù)器端渲染(如Nuclear組件化可以做到,大家叫同構(gòu))...
怎么做到這么強(qiáng)大的優(yōu)勢(shì),來(lái)回憶下以前見過的坑,或者現(xiàn)有項(xiàng)目里的坑。
CSS層疊樣式?保佑不要污染別的HTML!
在web前端,一般一個(gè)組件必須要有骨架HTML和裝飾的CSS以及JS邏輯。而CSS要是可以是局部作用域那就再好不過了!就不用寫長(zhǎng)長(zhǎng)的前綴了,浪費(fèi)帶寬不說,而且費(fèi)勁。
如
.ui-popup-arrow-xx-xxxxx-xxxx-container { }
這回夠長(zhǎng)了吧,不會(huì)污染別的HTML了吧。真的太長(zhǎng)了,沒有辦法,因?yàn)镃SS不是局部的,怕污染其他的HTML,規(guī)劃好長(zhǎng)長(zhǎng)的namespace、module是以前的最佳實(shí)踐。
怎么優(yōu)雅綁定事件?只能定義在window下?
如果HTML綁定的事件是局部作用域那就再好不過了!我真的見過模版代碼里出現(xiàn)下面的代碼:
<div onclick="xxx()"></div>
然后在js里找到了下面的代碼: