AMD、CMD、commonJS模块化规范的区别

前言:
CommonJS是服务器端js模块化的规范,NodeJS是这种规范的实现

AMD(异步模块定义)和CMD(通用模块定义)都是浏览器端js模块化的规范。requireJS遵循的是AMD,seaJS遵循的是CMD

这三个都是为Js模块化加载而生的,使模块能够按需加载,使系统同庞杂的代码得到组织和管理。模块化的管理代码使多人开发得到了更好的合作

AMD(异步模块定义):

  1. AMD作为一种模块化规范,有其对应的第三方库作为具体实现,最常用的就是RequireJS。也就是说,AMD规范的应用,需要借助RequireJS第三方库才能实现。

  2. AMD规范是非同步加载模块,允许指定回调函数

CMD(通用模块定义)

  1. CMD是SeaJS 在推广过程中对模块定义的规范化产出。

CommonJS

     1.根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。所以,定义一个模块就是写一个新的js文件,但是最后要将文件的内容exports出来。

     2.CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的操作

AMD和CMD区别:

   1.对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible(尽可能的懒加载,也称为延迟加载,即在需要的时候才加载)。

   2.CMD 推崇依赖就近,AMD 推崇依赖前置

   3.AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值