什么是模块化

# 什么是模块化

将一个复杂的程序按照一定的规则封装成杰哥文件,并进行组合在一起。每个模块的内部数据是私有的,只是向外部暴露一些接口(方法)与外部其他模块通信

# 模块化的优点

  1. 避免命名空间的冲突(减少命名空间的污染)
  2. 更好的分离,实现按需加载
  3. 提高代码的复用性
  4. 提高代码的维护性

# 发展

  • 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 规范,成为浏览器和服务器通用的模块解决方案。