此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

CommonJS与AMD、CMD

随着JS模块化编程的发展,处理模块之间的依赖关系变得至关重要,随后诞生了CommonJS、AMD与CMD规范,但es6的import/export能代替他们,但因为本人所使用的webpack也支持前三者的语法,且面试题中常出现,因此只对他们做一个简要的总结:

CommonJS

诞生最早,用于服务端,例如node,语法上是同步加载

eg:  require([module])

实现者: browserify

 

AMD

Asynchronous Module Definition(异步模块定义),CommonJS是用于服务端的,他异步加载的特性决定并不适用的客户端,AMD为客户端定制,添加了回调函数

eg: require([module], callback)

实现者: requireJS

 

CMD

与AMD类似,但最最主要的区别是: AMD会提早加载执行完所有的模块,CMD只在需要的时候加载执行

因此:

AMD提前执行 CMD延迟执行

AMD推崇前置 CMD推崇就近

实现者: seaJS

 

posted @ 2017-11-29 15:44  炎泽  阅读(199)  评论(0编辑  收藏  举报