前端模块体系

一、CommonJS(NodeJS)

命令:module、exports、require、global

特点:commonJS用同步的方式加载模块

二、AMD(RequireJS)

命令:define()定义模块,用require()加载模块

特点:异步加载模块

三、CMD(Sea.js)

命令:define()定义模块,用require()加载模块

特点;CMD是另一种js模块化方案,它与AMD很类似,不同点在于:AMD 推崇依赖前置、提前执行,CMD推崇依赖就近、延迟执行

四、ES6

命令:export(export default)  import

特点:静态加载模块

语法特点:

1、export 和 export default 模块引入方式不一样

2、export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值

五、ES6与CommonJS 差异

1、运行时加载: CommonJS 模块就是对象;即在输入时是先加载整个模块,生成一个对象,然后再从这个对象上面读取方法,这种加载称为“运行时加载”

2、编译时加载: ES6 模块不是对象,而是通过 export 命令显式指定输出的代码,import时采用静态命令的形式。即在import时可以指定加载某个输出值,而不是加载整个模块,这种加载称为“编译时加载”。

你可能感兴趣的:(前端模块体系)