我有两个文件,第一个是 todoHelper.js
它有 export const addTodo = (list, item) => [...list, item]
稍后我想addTodo
在另一个文件中使用,我只是这样做import {addTodo} from './todoHelpers'
但我也看到人们在做导出默认值,而不仅仅是导出。有什么区别?
我有两个文件,第一个是 todoHelper.js
它有 export const addTodo = (list, item) => [...list, item]
稍后我想addTodo
在另一个文件中使用,我只是这样做import {addTodo} from './todoHelpers'
但我也看到人们在做导出默认值,而不仅仅是导出。有什么区别?
每个文件只能有一个导出默认值,因此当您导出默认值时,例如
export default AddTodo = (list, item) => [...list, item]
你可以像这样导入
import MyAddTodo from './todoHelpers'
由于 babel 知道您正在尝试访问默认组件,因此您可以在您的文件中通过任何名称访问它
现在假设你这样做
export const AddTodo = (list, item) => [...list, item]
你可以在你的文件中有多个这样的导出,比如
export const AddTodo = (list, item) => [...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
其作为默认值.
使用带导出的默认关键字使我们可以自由地使用别名导入
export default k // in file my.js
可以使用别名 'b' 导入
import b from 'my.js'