node与浏览器中的模块化

为什么会有模块化的概念
  1. 理想状态下 代码只需实现业务逻辑 其他的通过别的模块来实现
  2. 前端在es6之前是不支持clsss(类)的 所以也没有模块化(module)的概念
  3. node中使用Commonjs规范 require引入模块 export导出模块,但是它是同步的,因为所有的模块都存放在本地硬盘,可以同步加载完成,等待时间就是硬盘的读取时间但是在浏览器中取决于网速的快慢,所以浏览器不能采用同步加载模块的形式
  4. 所以就有了AMD规范 异步加载模块,模块的加载不影响后面代码的执行,所有依赖这个模块的语句,都会在一个回调函数中,代码加载完成,函数才会执行,模块必须使用特定的define函数来定义
  5. CMD是依赖就近 用的时候再require
CMD与AMD的区别
  1. 最大的区别是对依赖模块的执行时机处理不同
  2. AMD依赖前置,js可以方便知道依赖模块是谁,方便加载
  3. CMD就近依赖
es6 module成为标准 export导出模块 import导入模块
  1. es6导出模块 如果只想导出一个 使用export default 如果想导出多个 使用export 引入使用解构赋值的方式

你可能感兴趣的:(周边)