- 发布时间
javascript模块化
- 作者

- Name
- wenjuGao
- github
- @Github
1. AMD — RequireJS:依赖前置、异步定义
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 RequireJS:异步加载 JS 文件,按照模块加载方法,通过 define()函数定义,第一个参数是一个数组,里面定义一些需要依赖的包,第二个参数是一个回调函数,通过变量来引用模块里面的方法,最后通过 return 来输出。 AMD 的规范是一个依赖前置,当需要使用别的模块时,在程序前做好引用,在引用成功的回调里面加载需要执行的程序。
define(['package/lib'], function (lib) {
function test() {
lib.fn()
}
return test
})
2. CMD — SeaJS:依赖就近、同步定义
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。 SeaJS:同步模块定义,是淘宝团队提供的一个模块开发的 js 框架(不更新)。define()定义,通过 require 加依赖插件,即用即返。
define(function (require, exports, module) {
var $ = require('jquery')
exports.test = function () {}
})
3. CommonJS 规范
CommonJS 规范是通过 module.exports 定义的,另外浏览器端是不识别 module.exports 的。 CommonJS 输出方式有 2 种:默认输出 module export 和 exports.XX
- Nodejs 端是使用 CommonJS 规范的;
- 前端浏览器一般使用 AMD、CMD、ES6 等定义模块化开发的;
a.js
exports.test = function () {}
b.js
var test = require('a.js')
ES6 模块化
export/import
export default / expor
t
export default 默认导出一个 , import xx from xx
x
export 批量导出,导出多个, import { xxx } from xx
x