JavaScript的模块化之AMD&CMD规范
前端开发常常会遇到的问题: 1.恼人的命名冲突; 2.繁琐的文件依赖; 模块化开发的优势: 1.解决命名冲突和依赖管理; 2.模块的版本管理; 3.提高代码的可维护性; 4.前端性能优化; JavaScript本身不具备模块化的功能,开发人员为了更好的开发,需要人为的制定一套规范标准,约定一套固定的写法来实现JavaScript模块化功能。 一个模块化系统所必须的能力: 定义封装的模块 定义新模块对其他模块的依赖 可对其他模块的引入支持 AMD&CMD AMD AMD(Asynchronous Module Definition)异步模块定义: 是 RequireJS 在推广过程中对模块定义的规范化产出。 requireJS主要解决两个问题 多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器 js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长 requireJS定义了一个函数 define,它是全局变量,用来定义模块 define(id?, dependencies?, factory); id:可选参数,用来定义模块的标识,如果没有提供该参数,脚本文件名(去掉拓展名) dependencies:是一个当前模块依赖的模块名称数组 factory:工厂方法,模块初始化要执行的函数或对象。如果为函数