Javascript(ES6),导出常量与导出默认值
我试图确定这两个之间是否有任何大的差异,除了能够通过仅仅执行export default
导入:
import myItem from 'myItem';
并使用export const
我可以这样做:
import { myItem } from 'myItem';
我想知道是否有任何差异和/或除此之外的用例。
这是一个命名导出与默认导出。 export const
是一个带有const
关键字的命名导出。
默认导出( export default
)
每个文件可以有一个默认导出。 当你导入你必须指定一个名称和导入像这样:
import MyDefaultExport from "./MyFileWithADefaultExport";
你可以给这个任何你喜欢的名字。
命名导出( export
)
通过命名导出,每个文件可以有多个命名导出。 然后导入你想包围在大括号中的特定出口:
// ex. importing multiple exports: import {MyClass, MyOtherClass} from "./MyClass"; // ex. giving a named import a different name by using "as": import {MyClass2 as MyClass2Alias} from "./MyClass2"; // use MyClass, MyOtherClass, and MyClass2Alias here
或者将所有命名的导出导入到一个对象上:
import * as MyClasses from "./MyClass"; // use MyClasses.MyClass and MyClass.MyOtherClass here
您可以同时使用默认导出或命名导出或两者。 语法偏向默认导出,因为它们的用例更为常见( 请参阅此处的讨论 )。
请注意,默认导出实际上是名称为default
的命名导出,因此您可以通过执行以下操作来导入它:
import {default as MyDefaultExport} from "./MyFileWithADefaultExport";
从文档 :
命名导出可用于导出多个值。 在导入过程中,可以使用相同的名称来引用相应的值。
关于默认导出,每个模块只有一个默认导出。 默认导出可以是一个函数,一个类,一个对象或其他任何东西。 这个值被认为是“主要”输出值,因为它是最简单的input。