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

什么是模块化

将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起
块的内部数据与实现是私有的(闭包/封装), 只是向外部暴露一些接口(方法)与外部其它模块通信

模块化的好处

1.避免命名冲突(减少命名空间污染)
2.更好的分离, 按需加载
3.更高复用性
4.高可维护性

一、 commonJS

CommonJS用同步的方式加载模块。在服务端,模块文件都存放在本地磁盘,读取非常快,所以这样做不会有问题。但是在浏览器端,限于网络原因,更合理的方案是使用异步加载。

二、AMD

AMD是Asynchronous Module Definition的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

三、CMD

CMD(Common Module Definition), 是seajs推崇的规范,CMD则是依赖就近,用的时候再require。

AMD和CMD区别

AMD和CMD最大的区别是对依赖模块的执行时机处理不同,而不是加载的时机或者方式不同,二者皆为异步加载模块。
AMD依赖前置,js可以方便知道依赖模块是谁,立即加载;而CMD就近依赖,需要使用把模块变为字符串解析一遍才知道依赖了那些模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AMD(Asynchronous Module Definition)和 CMD(Common Module Definition)是两种常见的JavaScript模块规范,而CommonJS则是另一种常见的JavaScript模块规范AMDCMD都是异步加载JavaScript模块规范,可以在页面加载完毕后再异步加载JavaScript模块。这样可以加快页面的加载速度,提高用户体验。 AMD规范是由RequireJS推广和实现的,它的特点是定义模块时采用的是函数式的语法。AMD模块通过define()函数定义,模块的依赖通过数组参数来定义: ``` //定义模块 define(['module1', 'module2'], function(module1, module2) { //模块代码 }); ``` CMD规范是由SeaJS推广和实现的,它的特点是定义模块时采用的是对象式的语法。CMD模块通过define()函数定义,模块的依赖通过函数参数来定义: ``` //定义模块 define(function(require, exports, module) { //引入依赖模块 var module1 = require('module1'); var module2 = require('module2'); //模块代码 }); ``` CommonJS规范则是由Node.js推广和实现的,它的特点是采用同步加载JavaScript模块的方式。CommonJS模块通过module.exports和require()函数来定义和引入模块: ``` //定义模块 module.exports = { //模块代码 }; //引入模块 var module1 = require('module1'); ``` 总的来说,AMDCMD主要用于浏览器端的JavaScript模块开发,而CommonJS主要用于服务器端的JavaScript模块开发。在实际开发中,可以根据自己的需求选择合适的模块规范

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值