美文网首页
AMD、CMD、CommonJS

AMD、CMD、CommonJS

作者: zhulichao | 来源:发表于2020-07-22 09:10 被阅读0次
  • AMD(Asynchronous Module Definition)、CMD(Common Module Definition)、CommonJS

    AMD、CMD、CommonJS是JS模块化开发的标准,CommonJS是用在服务器端的,同步的,如Node.js。AMD、CMD是用在浏览器端的,异步的,如RequireJS和SeaJS。其中,AMD先提出,CMD是根据CommonJS和AMD基础上提出的。

    CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的操作。像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。但如果是浏览器环境,要从服务器加载模块,这是就必须采用异步模式,所以就有了AMD和CMD解决方案。

    AMD和CMD的区别有以下几点:

> **AMD推崇依赖前置,CMD推崇依赖就近。AMD和CMD最大的区别是对依赖模块的执行时机处理不同** 
> 对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行。 
> AMD的api默认是一个当多个用,CMD严格的区分推崇职责单一。例如:AMD里require分全局的和局部的。CMD里面没有全局的require,提供seajs.use()来实现模块系统的加载启动。CMD里每个API都简单纯粹。 

UMD(Universal Module Definition 通用模块规范),因为AMD,CommonJS规范是两种不一致的规范,虽然他们应用的场景也不太一致,但是人们仍然是期望有一种统一的规范来支持这两种规范。于是,UMD规范诞生了。

相关文章

网友评论

      本文标题:AMD、CMD、CommonJS

      本文链接:https://www.haomeiwen.com/subject/sixjhktx.html