注:引用地址https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/import
语法
import defaultExport from "module-name"; import * as name from "module-name"; import { export } from "module-name"; import { export as alias } from "module-name"; import { export1 , export2 } from "module-name"; import { export1 , export2 as alias2 , [...] } from "module-name"; import defaultExport, { export [ , [...] ] } from "module-name"; import defaultExport, * as name from "module-name"; import "module-name";
- 将引用模块默认导出的名称。
-
要导入的模块。这通常是包含模块的
.js
文件的相对或绝对路径名,不包括.js
扩展名。某些打包工具可以允许或要求使用该扩展;检查你的环境。只允许单引号和双引号的字符串。 - 引用时将用作一种命名空间的模块对象的名称。
- 要导入的导出名称。
- 将引用指定的导入的名称。
defaultExport
module-name
name
export, exportN
alias, aliasN
描述
name
参数是“模块对象”的名称,它将用一种名称空间来引用导出。导出参数指定单个命名导出,而import * as name
语法导入所有导出。以下示例阐明该语法。
导入整个模块的内容
这将myModule
插入当前作用域,其中包含来自位于/modules/my-module.js
文件中导出的所有模块。
import * as myModule from '/modules/my-module.js';
在这里,访问导出意味着使用模块名称(在这种情况下为“myModule”)作为命名空间。例如,如果上面导入的模块包含一个doAllTheAmazingThings()
,你可以这样调用:
myModule.doAllTheAmazingThings();
导入单个导出
给定一个名为myExport
的对象或值,它已经从模块my-module
导出(因为整个模块被导出)或显式地导出(使用export
语句),将myExport
插入当前作用域。
import {myExport} from '/modules/my-module.js';
导入多个导出
这将foo
和bar
插入当前作用域。
import {foo, bar} from '/modules/my-module.js';
导入带有别名的导出
导入时可以重命名导出。例如,将shortName
插入当前作用域。
import {reallyReallyLongModuleExportName as shortName}
from '/modules/my-module.js';
导入时重命名多个导出
使用别名导入模块的多个导出。
import {
reallyReallyLongModuleMemberName as shortName,
anotherLongModuleName as short
} from "my-module";
导入默认值
可以使用默认export
(无论是对象,函数,类等)。然后可以使用import
语句来导入这样的默认值。
最简单版本,直接导入默认值:
import myDefault from "my-module";
也可以使用默认语法与上述(命名空间导入或命名导入)。在这种情况下,默认导入将必须首先声明。 例如:
import myDefault, * as myModule from "my-module";
// myModule used as a namespace
或者
import myDefault, {foo, bar} from "my-module";
// specific, named imports