这是 默认导入 :
// B.jsimport A from './A'
仅当
A具有 默认导出 时才有效:
// A.jsexport default 42
在这种情况下,导入时分配给它的名称无关紧要:
// B.jsimport A from './A'import MyA from './A'import Something from './A'
因为它会始终解析到任何的是 默认的导出 的
A。
这是一个 名为import的导入A
:
import { A } from './A'仅在
A包含 名为的命名导出
A时才有效:
export const A = 42
在这种情况下,名称很重要,因为您要 通过其导出名称 来导入 特定内容 :
// B.jsimport { A } from './A'import { myA } from './A' // Doesn't work!import { Something } from './A' // Doesn't work!为了使这些工作,你会添加一个 对应的命名出口 到
A:
// A.jsexport const A = 42export const myA = 43export const Something = 44
一个模块只能具有 一个默认导出 ,但可以具有任意数量的 命名导出 (零,一个,两个或多个)。您可以将它们全部一起导入:
// B.jsimport A, { myA, Something } from './A'在这里,我们将默认导出导入为
A,并将导出名称分别命名为
myA和
Something。
// A.jsexport default 42export const myA = 43export const Something = 44
导入时,我们还可以为它们分配所有不同的名称:
// B.jsimport X, { myA as myX, Something as XSomething } from './A'默认导出通常用于通常希望从模块中获取的内容。命名的出口通常用于方便的实用程序,但并不总是必需的。但是,由您决定如何导出内容:例如,一个模块可能根本没有默认导出。



