这些导入方法有什么区别?
方法1:
import {sum, pi} from "lib/math";
方法2:
import exp, {pi, e} from "lib/mathplusplus";
es2015文档展示了这两个例子,我无法弄清楚花括号的目的.似乎导入后列出的所有内容都会被分配给window
对象.
文件供参考:https://babeljs.io/docs/learn-es2015/
模块可以导出多个东西.模块也可以有一个"默认"导出.
import exp from "somelib";
这会将默认导出分配给somelib
变量exp
.
import {a, b} from "somelib";
这种分配非默认命名的出口a
和b
局部变量a
和b
.
import exp, {a, b} from "somelib";
将默认导出exp
和指定的导出分配给a
和b
.
import * as somelib from "somelib";
通吃somelib的命名出口,并将它们分配为对象的局部变量somelib
,这意味着你将有somelib.a
,somelib.b
等等.
这是该主题的一个非常好的资源:http://www.2ality.com/2014/09/es6-modules-final.html