Я знаю, что есть два вида экспорта: один называется по умолчанию, а другой - по умолчанию.
// utils.js
const addOne = (a) => a+1;
export default addOne;
export const subOne = (a) => a- 1;
//app.js
import plusOne, {subOne} from './utils.js'
Я так не понимаю, зачем нам экспорт по умолчанию, его можно использовать только один раз. Единственная причина в том, что именованный экспорт предоставляет имя локально, а экспорт по умолчанию можно переименовать. Однако, если у нас есть именно спрос, возможно, нам придется использовать его повторно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Импорт по умолчанию не требуется. Вы можете использовать именованный экспорт сколько угодно. В вашем случае, когда вы экспортируете кучу служебных функций, вероятно, было бы лучше использовать именованный экспорт. Однако, если вам нужно экспортировать только одну функцию, обычно класс, идеально подходит экспорт по умолчанию.
Основываясь на личном опыте, я могу придумать один практический пример из реальной жизни, где у вас будет как экспорт с именем и, так и экспорт по умолчанию, и это когда вы придете для тестирования компонента React, заключенного в компонент более высокого порядка.
class Hello extends Component {
//
}
export default connect(mapStateToProps, mapDispatchToProps)(Hello);
Если вы тестируете этот компонент, вы столкнетесь со всевозможными проблемами, если попытаетесь импортировать экспорт по умолчанию из этого файла. Поэтому вместо этого вам нужно экспортировать только компонент, и для этого вы можете использовать именованный экспорт:
export class Hello extends Component {
//
}
export default connect(mapStateToProps, mapDispatchToProps)(Hello);