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。