ES6模块 - 导入格式的差异

时间:2016-03-27 05:19:21

标签: module ecmascript-6

鉴于我有两个进口:

import { createDevTools } from 'redux-devtools';
import LogMonitor from 'redux-devtools-log-monitor';

这两者有什么区别?

我理解LogMonitor是“默认”导出,括号内导入可以在逗号分隔列表中一次导入多个不同的导出。但是,使用方法有什么不同吗?

我觉得我错过了一些基本的东西。

3 个答案:

答案 0 :(得分:2)

  

但是,使用方法有什么不同吗?

没有。默认和命名的导入/导出可以具有任何JavaScript值。这实际上取决于您导入的模块是如何组织的。

答案 1 :(得分:2)

import { createDevTools } from 'redux-devtools';

是:

的简写
 import DevTools from 'redux-devtools';
 const createDevTools = DevTools.createDevTools;

因此,您将直接转到默认导出对象的属性。

答案 2 :(得分:0)

如果还是这样,有人会通过简单的示例来寻找更多细节。查看MDN web docs

  

import语句用于导入由以下对象导出的绑定   另一个模块。无论您是否导入的模块都处于严格模式   声明它们是否如此。 import语句不能用于   嵌入式脚本,除非此类脚本具有type =“ module”

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";