Оба они действительны.
Метод 1 предоставляет именованный экспорт . Ключевым моментом здесь является то, что вы можете экспортировать больше чем одну вещь. Это следует использовать вместо экспорта объекта с несколькими свойствами. Когда вы импортируете модуль с именованным экспортом, используйте import {a, b} from c.
Метод 2 обеспечивает экспорт по умолчанию . По умолчанию может быть только один экспорт. Это в основном используется, когда вы экспортируете одну вещь, например class, или одну, functionкоторую вы ожидаете использовать без какой-либо дополнительной поддержки. Когда вы импортируете модуль с экспортом по умолчанию, используйте import d from c.
Обратите внимание, что вы можете использовать оба! так что, если у вас есть основная, основная функция с горсткой иногда используемых помощников, вы можете exportиспользовать помощники и export defaultосновной. Когда вы импортируете модуль и нуждаетесь в обоих видах экспорта, используйте import d, {a, b} from c.
Еще один вариант , который вы можете получить по имени экспорта путем перечисления их в конце модуля, например , так: export {a,b,c}. Вы также можете переименовать их export {a as $a, b as c}.
Я получил все это из этой статьи , которая является лучшим источником последней информации о модуле es6, которую мне удалось найти.
import x from yvsimport {x} from y