JavaScript模块化

AMD、CMD、CommonJs、UMD是ES5中供应的模块化编程的计划,import/export是ES6中新增。
1.AMD-异步模块定义
AMD是RequireJS在推行过程当中对模块定义的范例化产出,它是一个观点,RequireJS是对这个观点的完成,就比如JavaScript言语是对ECMAScript范例的完成。AMD是一个构造,RequireJS是在这个构造下自定义的一套脚本言语。
RequireJS:是一个AMD框架,能够异步加载JS文件,根据模块加载要领,经由过程define()函数定义,第一个参数是一个数组,内里定义一些须要依靠的包,第二个参数是一个回调函数,经由过程变量来援用模块内里的要领,末了经由过程return来输出。
是一个依靠前置、异步定义的AMD框架(在参数内里引入js文件),在定义的同时假如须要用到别的模块,在最前面定义好即在参数数组内里举行引入,在回调内里加载。
 require([module], callback);

2.CMD—是SeaJS在推行过程当中对模块定义的范例化产出,是一个同步模块定义,是SeaJS的一个规范,SeaJS是CMD观点的一个完成,SeaJS是淘宝团队供应的一个模块开辟的js框架
经由过程define()定义,没有依靠前置,经由过程require加载jQuery插件,CMD是依靠就近,在什么地方运用到插件就在什么地方require该插件,即用即返,这是一个同步的观点。

3.commonJS范例—是经由过程module.exports定义的,在前端阅读器内里并不支撑module.exports,经由过程node.js后端运用的。Nodejs端是运用CommonJS范例的,前端阅读器能够应用browserify插件支撑commonJS,能够讲js文件打包到一个main.js,所以不会涌现阅读require新模块的时刻,须要异步加载的状况,更不会涌现阅读器假死。
阅读器不兼容CommonJS的根本原因,在于缺乏四个Node.js环境的变量(module、exports、require、global)
输出体式格局有2种:默许输出—module export 和带有名字的输出—exports.area。

4.UMD-通用模块范例
既然CommonJs和AMD作风一样盛行,好像缺乏一个一致的范例。所以人们产生了如许的需求,愿望有支撑两种作风的“通用”形式,因而通用模块范例(UMD)诞生了。为了保证通用性,捐躯的易用性,这个形式略丢脸,然则它兼容了AMD和CommonJS,同时还支撑老式的“全局”变量范例。

5.ES6模块化—export/import对模块举行导出导入的

    原文作者:Junezm
    原文地址: https://segmentfault.com/a/1190000018106793
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞