LadderLay/JavaScript365

JS模块化

Opened this issue · 1 comments

JS模块发展史

ES6之前

使用对象、闭包、立即执行函数实现模块

函数模块

模块模块

函数扩展模块,对象扩展接口

AMD & CommonJS

AMD基于浏览器,CommonJS面向通用JS环境。
AMD的优点:
自动处理依赖,无需考虑模块导入的顺序;异步加载模块从而避免阻塞;同一文件内可以定义多个模块。
CommonJS:
一个文件就是一个模块(基于文件)
同步引入模块

拓展:UMD

ES6模块

结合了CommonJS和AMD的优点:基于文件;支持异步模块加载。
export import

//导入
import...
//导出
export...

待完善:CommonJS和ES6的语法
一些区别