为了账号安全,请及时绑定邮箱和手机立即绑定

何时为ES6导入使用花括号?

何时为ES6导入使用花括号?

DIEA 2019-06-12 15:39:21
何时为ES6导入使用花括号?这似乎很明显,但我发现自己对何时使用花括号导入ES6中的单个模块感到有点困惑。例如,在我正在处理的React-原住民项目中,我有以下文件及其内容:initialState.jsvar initialState = {     todo: {         todos: [             {id: 1, task: 'Finish Coding', completed: false},             {id: 2, task: 'Do Laundry', completed: false},             {id: 2, task: 'Shopping Groceries', completed: false},         ]     }};export default initialState;在TodoReducer.js中,我必须在没有大括号的情况下导入它:import initialState from './todoInitialState';如果我附上initialState在大括号中,我得到以下代码行的错误:无法读取未定义的属性待办事项js:export default function todos(state = initialState.todo, action) {// ...}使用花括号的组件也会出现类似的错误。我想知道什么时候应该为单个导入使用大括号,因为很明显,在导入多个组件/模块时,您必须将它们用大括号括起来,我知道这一点。编辑:在这里没有回答我的问题,而是我在问什么时候我应该或者不应该使用花括号来导入单株模块,否则我不应该使用花括号来导入ES6中的单个模块(显然不是这样,因为我已经看到了需要花括号的单个导入)。
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

如果要导入非默认导出,则使用大括号。

有关更多细节,请参见上文丹·阿布拉莫夫的回答。


查看完整回答
反对 回复 2019-06-12
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

用哪种?

引用大卫·赫尔曼的话ECMAScript 6支持单一/默认导出样式,并为导入默认值提供了最优美的语法。导入命名的导出可以而且甚至应该稍微不那么简洁。

然而,在名为EXPORT的类型记录中,由于重构而受到青睐。例如,如果默认导出一个类并将其重命名,则类名将仅在该文件中更改,而不是在其他引用中更改,而命名导出类名将在所有引用中被重命名。命名导出也是实用程序的首选。

总之,你喜欢什么就用什么。

额外

默认导出实际上是一个名称默认的命名导出,因此默认导出可以导入如下:

import {default as Sample} from '../Sample.js';


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 705 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信