js模块化的两种规范AMD和CMD
JS cmd 两种 规范 AMD 模块化
2023-09-14 08:58:55 时间
AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD
CMD 规范在这里:https://github.com/seajs/seajs/issues/242
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
区别:
1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.
2. CMD 推崇依赖就近,AMD 推崇依赖前置,例如:
// CMD 默认推荐的是 define(function(require, exports, module) { var a = require('./a') a.doSomething() // 此处略去 100 行 var b = require('./b') // 依赖可以就近书写 b.doSomething() ... }) // AMD 默认推荐的是 define(['./a', './b', 'require', 'exports'], function(a, b, require, exports) { // 依赖必须一开始就写好 a.doSomething() // 此处略去 100 行 require('./b').doSomething() exports.test = 123; ... })
值得一提的是requireJs也支持CMD的写法,但是似乎requireJs更加推荐以上这种AMD默认写法。
3. AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一。比如 AMD 里,require 分全局 require 和局部 require,都叫 require。CMD 里,没有全局 require,而是根据模块系统的完备性,提供 seajs.use 来实现模块系统的加载启动。CMD 里,每个 API 都简单纯粹。
4. 还有一些细节差异,具体看这个规范的定义就好,就不多说了。
相关文章
- 使用 Node.js Stream API 减少服务器端内存消耗的一个具体例子
- Next.js + 腾讯云开发Webify 打造绝佳网站
- Node.js支持高并发原理
- Vue.js – 引入外部 JS 文件
- js 中数字小数点末尾的0显示与否
- leetcode 101. 对称二叉树 js实现
- 创建JS文件:在Linux下实现自动化任务(linux创建js文件)
- MSSQL CMD指令:加快您数据库操作的大力神器(mssql cmd)
- MSSQL自动化操作:使用CMD执行命令(mssql自带执行cmd)
- 查看MySQL版本用CMD一步搞定(cmd查找mysql版本)
- CMD查看MySQL版本快速简便的方法(cmd查mysql版本)
- 神奇的CMD快速打开MySQL 57(cmd打开mysql57)
- 快速搞定使用CMD管理MySQL数据库(cmd怎么连mysql)
- 瞬息万变用CMD快速导入Mysql表格(cmd导入mysql表格)
- Windows下Cmd如何使用MySQL查询数据库(cmd如何运用mysql)
- MySQL 在 CMD 下的应用(cmd中的mysql命令)
- 配置MySQL路径的CMD操作方法(cmd mysql路径)
- 使用CMD快捷操作MySQL(cmd mysql操作)
- 从前端JS里请求Redis资源,搭建高性能应用(前端js请求redis)
- JS版获取字符串真实长度和取固定长度的字符串函数
- js创建书签小工具之理论
- 原生js秒表实现代码
- 鼠标焦点离开文本框时验证的js代码
- IIS启用GZIP压缩js、css无效的原因及解决方法
- 关于js中forin的缺陷浅析
- JS获取select的value和text值的简单实例
- js时间比较示例分享(日期比较)
- Python通过websocket与js客户端通信示例分析
- 为JS扩展Array.prototype.indexOf引发的问题及解决办法