模組化和元件化區別

我們的程式稍微大點就要分開寫了,不然幾萬行程式碼放一起不得瘋了,就像我們平時用電腦也會把電影和音樂分開放吧,這其實就可以算是模組 分開後就帶來了依賴的問題,檔案多了手動管理依賴就毀了,就有了amd cmd commonjs等,

這些規範其實是為了解決模組的依賴,而不是模組本身

對比如下:

模組化和元件化區別

元件化和模組化的價值都在於分治

web應用系統的複雜度不斷提升,兼顧開發效率和產品實際執行效率,會在開發階段運用元件化和模組化的手段分離關注點,結合構建工具合理打包。

元件化更多關注的是UI部分,你看到的一個管理介面的彈出框,頭部,內容區,確認按鈕和頁尾都可以是個元件,這些元件可以組成一個彈出框元件,跟其他元件組合又是一個新的元件。

模組化側重於功能或者資料的封裝,一組相關的元件可以定義成一個模組,一個暴露了通用驗證方法的物件可以定義成一個模組,一個全域性的json配置檔案也可以定義成一個模組。

封裝隔離來後,更重要的是解決模組間的依賴關係。babel作為現在最火的es6轉換器,用babelify或者webpack的babel loader再或者基於task的構建系統外掛都可以很方便用起來es6 modules

總結:『模組注重的是職責分離,而元件強調的是複用』