Когда я должен использовать скобки с импортом


У меня есть два файла, первый-todoHelper.js

Он имеет export const addTodo = (list, item) => [...list, item]

Позже я хочу использовать addTodo в другом файле, я просто делаю import {addTodo} from './todoHelpers'

Но я также вижу, что люди делают экспорт по умолчанию, а не просто экспорт. В чем разница?

2   5  

2 ответа:

Вы можете иметь только один экспорт по умолчанию для каждого файла и, следовательно, когда вы делаете экспорт по умолчанию, как

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) = > [...список, пункт]

И когда вы импортируете, вам нужно будет уничтожить их, как

import {AddTodo, DeleteTodo}from './todoHelpers'

Теперь, поскольку у вас есть несколько таких экспортов, таким образом, babel не будет знать, к какому компоненту вы пытаетесь получить доступ, если вы получаете доступ, если под другим именем, например

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

Если вы хотите сделать это, вам придется импортировать их как есть, и они изменят свое имя, как

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

Таким образом, в качестве общей практики вы будете default export основной компонент, а остальное вы можете иметь в качестве экспорта обычно или когда у вас есть только один компонент, который вам нужно экспортировать из файла, то вы можете выбрать все, что вы хотите, но хороший способ будет export это по умолчанию.

Использование ключевого слова default с экспортом дает нам свободу импортировать с псевдонимом

export default k // in file my.js

Можно импортировать с псевдонимом ' b '

import b from 'my.js'