什么是模块
将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起
块的内部数据与实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信
模块化规范
根据平台划分
ƽ̨ | 规范 | 特性 |
---|---|---|
浏览器 | AMD、CMD | 存在网络瓶颈,使用异步加载 |
非浏览器 | CommonJS | 直接操作 IO,同步加载 |
根据同步异步划分
特性 | 规范 |
---|---|
同步加载 | CommonJS |
异步加载 | AMD、CMD |
AMD、CMD两大规范
规范 | 约束条件 | 代表作 |
---|---|---|
AMD | 依赖前置 | requirejs |
CMD | 就近依赖 | seajs |
模块化的好处
避免命名冲突(减少命名空间污染)
更好的分离, 按需加载
更高复用性
高可维护性