我何时应该使用带括号的括号

时间:2017-02-05 12:11:59

标签: javascript reactjs webpack ecmascript-6

我有两个文件,第一个是todoHelper.js

它有export const addTodo = (list, item) => [...list, item]

稍后我想在另一个文件中使用addTodo,我只是import {addTodo} from './todoHelpers'

但我也看到人们做出口违约而不仅仅是出口。差异是什么?

2 个答案:

答案 0 :(得分:7)

每个文件只能有一个导出默认值,因此当您执行导出默认值时,如

export default AddTodo = (list, item) => [...list, item]

您可以像

一样导入它
import MyAddTodo from './todoHelpers'

由于babel知道您正在尝试访问默认组件,因此您可以通过任何名称在您的文件中访问它

现在假设你做了

export const AddTodo = (list, item) => [...list, item]

您可以在文件中添加多个此类导出,例如

export const AddTodo =(list,item)=> [...项目清单]    export const DeleteTodo =(list,item)=> [... list,item]

当你导入时,你需要像

那样去构造它们
import {AddTodo, DeleteTodo}from './todoHelpers'

既然你有多个这样的导出,那么如果你通过不同的名称访问,那么babel就不会知道你要访问哪个组件

import {MyAddTodo, MyDeleteTodo}from './todoHelpers'

如果你想这样做,你必须按原样导入它们,并改变它们的名称,如

import {AddTodo as MyAddTodo, DeleteTodo as MyDeleteTodo}from './todoHelpers'

因此,作为一般惯例,您将default export主要组件以及您可以正常导出的其余组件,或者当您只有一个组件需要从文件中导出时,您可以选择任何您想要的但是好的方法是默认为export

答案 1 :(得分:0)

使用带导出的默认关键字,我们可以自由地使用别名

导入
export default k // in file my.js

可以使用别名' b'

导入
import b from 'my.js'