【发布时间】:2018-03-19 00:17:46
【问题描述】:
我在 ES6 中看到了以下两种从另一个模块导入代码的变体:
import {module} from "./Module"
和
import module from "./Module"
其中module是文件中定义的ES6类
模块.js
这两个import语句有什么区别?
【问题讨论】:
我在 ES6 中看到了以下两种从另一个模块导入代码的变体:
import {module} from "./Module"
和
import module from "./Module"
其中module是文件中定义的ES6类
模块.js
这两个import语句有什么区别?
【问题讨论】:
不同之处在于它的导出方式。
export default const myModule = {}
基本上它说“这是默认导出”。你用
导入这个import myModule from 'module'
另一种方式是可以像这样导出多个入口点:
export const myModule1 = {}
export const myModule2 = {}
你用
导入这些import {myModule1, myModule2} from 'module'
如果同时导出默认入口点和命名入口点,您可以这样做:
import myModule, {myModule1, myModule2} from 'module'
这似乎不完全合乎逻辑,通常包作者应该解释他们的模块应该如何导入。如果您是作者,这将对您有所帮助
【讨论】:
第一种情况
import {module} from "./Module"
您正在从一个模块导入单个导出并在当前范围内插入“模块”。在Module.js 文件中,您必须命名为exports:
export { module, module2 };
请注意有两个命名导出,但您只导入一个。
在第二个示例中,您正在导入默认导出:
import module from "./Module"
在您的Module.js 文件中导出可能如下所示:
导出默认模块3;
请注意,您可以使用不同的名称导入默认值。
【讨论】: