從幾個月前開始接觸前端,我就聽到一句話:保持內容、樣式、行為的分離是一個良好並且必要的習慣。所以我一直以來的模式是:HTML=>CSS=>JavaScript,也就是先把內容填充好了,然后寫CSS,一看大概頁面差不多了,用JS寫一些行為,比如點擊啦滾動啦什么的,然后萬事大吉!
然而早就聽說了webpack,最近開始學習,然后發現需要nodeJS,然后又了解了解nodeJS,又知道了commonJS,又接觸到了模塊化、組件化這些詞,意識到我原本的方式好像並不是內容樣式行為分離的模式。首先,JS代碼和DOM強耦合,也就是HTML里隨便改個class或者id,可能導致整個頁面完蛋,所以這種方式只能說是形離神不離。
所以我又查閱相關資料,頁面可以說是由一個個組件構成,組件又由一個個實現某功能的模塊構成,所以模塊化和組件化可以實現代碼的復用,有一篇文章提出了一種說法:
很多人覺得模塊化開發的工程意義是復用,我不太認可這種看法,在我看來,模塊化開發的最大價值應該是分治,是分治,分治!(重說三)。
不管你將來是否要復用某段代碼,你都有充分的理由將其分治為一個模塊。
所以我的理解是,將頁面分成一個個組件,各組件互不干擾,分別開發,可隨意組合,組件包括有JS模塊和CSS模塊,JS模塊利用命名空間、閉包等方式將想要暴露的屬性暴露出來(或者AMD/CMD/ES6 Module等方式)。
目前依然在學習中,理解有限,難免有錯,深入學習后再改。