模块化通俗一点讲就是当需要引入某个变量或者函数之类的时,可以不用引入整个文件,只引入所需要的内容,这种操作就叫做模块化。模块化可以避免冗余,在大型项目中起到优化代码的作用。
在es6中有CommonJS、es6、AMD这几种,其中CommonJS模块化和es6模块化使用更多,就详细介绍这两种。
CommonJS模块化
导入
使用require进行导入,具体实现看下边例子
let {firstName,lastName} = require('./module.js');
//上面的代码等同于下面
let obj = require('./module.js');
let first = obj.firstName;
let last = obj.lastName;
导出
使用exports进行导出,具体操作看下边代码
module.exports = {
firstName,lastName
}
es6模块化
导入
使用import进行导入
import {firstName,lastName} from './module.js';
//默认导入
import data from './module.js';
//导入全部
import * from './module.js';
//导入执行(模块加载)
import './module.js';
//导入第三方模块(去项目的根目录找node_modules PS:该依赖需要手动下载)
import 'babel-preset-latest';
导出
使用export进行导出
export {firstName,lastName};
//重命名导出
export { firstName as first, lastName as last };
//默认导出
export default {
代码体
}
AMD
AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。