什么是模块化
# 什么是模块化
将一个复杂的程序按照一定的规则封装成杰哥文件,并进行组合在一起。每个模块的内部数据是私有的,只是向外部暴露一些接口(方法)与外部其他模块通信
# 模块化的优点
- 避免命名空间的冲突(减少命名空间的污染)
- 更好的分离,实现按需加载
- 提高代码的复用性
- 提高代码的维护性
# 发展
- 2022年 正式提出命名空间模式
- 2009年 提出 CommonJS 规范
- 2009年 提出 AMD 规范
- 2011年 提出 UMD 规范
- 2011年 提出 CMD 规范
- 2015年 提出 ES2015 Modules 规范
# 扩展
- CommonJS规范主要用于服务端编程,加载模块是同步的,这并不适合在浏览器环境,因为同步意味着阻塞加载,浏览器资源是异步加载的,因此有了AMD CMD解决方案。
- AMD规范在浏览器环境中异步加载模块,而且可以并行加载多个模块。不过,AMD规范开发成本高,代码的阅读和书写比较困难,模块定义方式的语义不顺畅。
- CMD规范与AMD规范很相似,都用于浏览器编程,依赖就近,延迟执行,可以很容易在Node.js中运行。不过,依赖SPM 打包,模块的加载逻辑偏重
- ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。