总共有两种导出模块的方式:命名导出(export)和默认导出(export default)
命名导出
一个模块可以导出多个接口,主要通过导出的名字作为区分,如下:
// module1.js
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
// main.js
// 导入module1.js模块中的square和diag接口
import {square, diag} from './module1';
console.log(square(11));
console.log(diag(4, 3));
上面代码中module1.js对外开放了sqrt、square、diag
三个接口,在main.js中只引入了square、diag
两个接口。
当然,还可以通过下面的方式导入module1.js中的全部接口
// main.js
import * as lib from './module1' //导入module1,并命名为lib
console.log(lib.square(11));
console.log(lib.diag(4, 3));
上面代码中导入module1模块中的所有接口,并将该模块命名为lib
默认导出(export default)
一个模块中只能有一个 export default
http://2ality.com/2014/09/es6-modules-final.html