什么是模块化,模块化的好处是什么
⼀、什么是模块化?
模块化是⼀种处理复杂系统分解为更好的可管理模块的⽅式。每个模块完成⼀个特定的⼦功能,所有的模块按某种⽅法组装起来,成为⼀个整体,完成整个系统所要求的功能。
模块具有以下⼏种基本属性:接⼝、功能、逻辑、状态,功能、状态与接⼝反映模块的外部特性,逻辑反映它的内部特性。
⼆、模块化的好处
避免命名冲突(减少命名空间污染)
灵活架构,焦点分离,⽅便模块间组合、分解
多⼈协作互不⼲扰
⾼复⽤性和可维护性
三、模块化规范
模块化设计的优点1、RequireJS模块。RequireJS遵循的是AMD规范。AMD规范是异步加载,依赖前置,特点是准备充分,但加载会较慢。使⽤define()定义模块,require()加载模块。
2、SeaJS模块。SeaJS遵循的是CMD规范。CMD规范也会异步加载,不同的是CMD依赖就近,特点是⾸次加载很快。CMD规范也是使⽤define()定义模块,require()加载模块。但和AMD规范思想不同,写法也不同。
3、CommonJS。CommonJS规范使⽤require加载模块,ports导出模块,module可省略,但不推荐。特点是加载模块顺序按照词法解析的顺序加载,是同步加载的。
4、ES6模块。ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系。使⽤import和export来导⼊导出,ES6还提供了⼀个default,⽤来提供默认的export。特点是加载模块存储的是值的引⽤,所以全局只有⼀份;加载模块也是异步的。ES6的module吸收了CommoneJS和AMD两者的优点,兼容两标准的规范。