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

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

前言:

  1. CommonJS是服务器端js模块化的规范,NodeJS是这种规范的实现
  2. AMD(异步模块定义)和CMD(通用模块定义)都是浏览器端js模块化的规范。requireJS遵循的是AMD,seaJS遵循的是CMD
  1. 这三个都是为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 严格区分,推崇职责单一。


目录
相关文章
|
6月前
|
JavaScript 前端开发
node.js 导入导出模块(CommonJS模块化规范,ES6模块化规范)
node.js 导入导出模块(CommonJS模块化规范,ES6模块化规范)
74 1
|
8月前
|
JavaScript 前端开发 开发者
深入了解 AMD 和 CMD 规范:探索模块加载的世界(上)
深入了解 AMD 和 CMD 规范:探索模块加载的世界(上)
|
8月前
|
JavaScript 前端开发 开发工具
深入了解 AMD 和 CMD 规范:探索模块加载的世界(下)
深入了解 AMD 和 CMD 规范:探索模块加载的世界(下)
|
JavaScript 前端开发 开发者
各种模块化方案的解释-AMD-CMD-Module
各种模块化方案的解释-AMD-CMD-Module
62 0
|
JavaScript API
说说AMD、CMD、commonJS模块化规范的区别?
说说AMD、CMD、commonJS模块化规范的区别?
164 0
|
JavaScript 前端开发 UED
JavaScript中的AMD和CMD规范
JavaScript中的AMD和CMD规范
|
JavaScript 前端开发
深入了解前端开发规范的区别《Commonjs、AMD、CMD、ES6模块化》
深入了解前端开发规范的区别《Commonjs、AMD、CMD、ES6模块化》
125 0
|
JavaScript 前端开发
说说你对JavaScript模块化方案的理解和 CommonJS、AMD、CMD、ES6 Module 分别是什么?
模块化是指将一个复杂问题,自顶向下逐层把系统划分为若干模块的过程。对于整个系统来说,这些模块可组合,分解和更换的单元。对于编程领域的模块化就是遵守固定的原则,将一个大文件拆分成多个独立且相互依赖的小模块。简单理解模块化就是在一个js文件中能够引入另一个js文件
149 0
|
Web App开发 JavaScript 测试技术
软件版本号规范与命名原则(node.js与package.json依赖包规范)
### 1、软件版本号 一般来讲大部分的软件版本号分3段,比如 A.B.C + A 表示大版本号,一般当**软件整体重写**,或**出现不向后兼容的改变**时,增加A,A为零时表示软件还在**开发阶段**。 + B 表示功能更新,**出现新功能时增加B** + C 表示小修改,如**修复bug**,只要有修改就增加C ### 2、版本号的修饰词 + 日期版本号:表示发布日期 + alpha: 内部测试版,bug较多,主要是修改和实现功能 + beta: 测试版,大部分bug已修,主要是修改UI和小bug等 + rc: 即将作为正式版发布 + lts: 长期维护 + release版: 该
454 1
|
JavaScript 前端开发
js 模块化基础和模块规范AMD、CMD、ES6模块
js 模块化基础和模块规范AMD、CMD、ES6模块
124 0

热门文章

最新文章