美文网首页无忧·日更
CommonJs、AMD和CMD规范的差异

CommonJs、AMD和CMD规范的差异

作者: 不思量q | 来源:发表于2019-10-27 12:39 被阅读0次
  1. CommonJs用的是同步的方式加载模块。NodeJs是该规范的主要实践者,module exports require global这四个变量为模块化的实现提供了支持。最基础的模块的导入导出这里就不再赘述。

    我们需要知道,在服务端,模块文件都存在本地磁盘,读取速度是很快的,所以使用同步加载问题不大。但在浏览器端,由于各方面原因,更多的还是推荐异步加载,即浏览器一般采用AMD规范。

  2. AMDAsynchronous Module DefinitionRequireJs是其对应实践。它推崇依赖前置、提前执行。

  3. CMDCommon Module DefinitionSeaJs是其对应实践。它推崇依赖就近、延迟执行。

  4. 除此之外还有ES6模块值得一提,它在语言标准的层面上,很简单的使用import和export就实现了浏览器端和服务端通用的模块解决方案。与CommonJs的区别在于,前者输出的是一个值的拷贝,而ES6模块输出的是值的引用。前者是运行时加载,后者是编译时才输出接口。

    参考文章:

相关文章

网友评论

    本文标题:CommonJs、AMD和CMD规范的差异

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