一、什么是模塊化?
模塊化是一種處理復雜系統分解為更好的可管理模塊的方式。每個模塊完成一個特定的子功能,所有的模塊按某種方法組裝起來,成為一個整體,完成整個系統所要求的功能。
模塊具有以下幾種基本屬性:接口、功能、邏輯、狀態,功能、狀態與接口反映模塊的外部特性,邏輯反映它的內部特性。
二、模塊化的好處
避免命名沖突(減少命名空間污染)
靈活架構,焦點分離,方便模塊間組合、分解
多人協作互不干擾
高復用性和可維護性
三、模塊化規范
1、RequireJS模塊。RequireJS遵循的是AMD規范。AMD規范是異步加載,依賴前置,特點是准備充分,但加載會較慢。使用define()定義模塊,require()加載模塊。
2、SeaJS模塊。SeaJS遵循的是CMD規范。CMD規范也會異步加載,不同的是CMD依賴就近,特點是首次加載很快。CMD規范也是使用define()定義模塊,require()加載模塊。但和AMD規范思想不同,寫法也不同。
3、CommonJS。CommonJS規范使用require加載模塊,module.exports導出模塊,module可省略,但不推薦。特點是加載模塊順序按照詞法解析的順序加載,是同步加載的。
4、ES6模塊。ES6 模塊的設計思想是盡量的靜態化,使得編譯時就能確定模塊的依賴關系。使用import和export來導入導出,ES6還提供了一個default,用來提供默認的export。特點是加載模塊存儲的是值的引用,所以全局只有一份;加載模塊也是異步的。ES6的module吸收了CommoneJS和AMD兩者的優點,兼容兩標准的規范。