, Все лучше. ;-)
шлом я использовалвыявление шаблона модуля.
function myModule() {
function foo() ...
function bar() ...
return {
foo: foo,
bar: bar
};
}
С ES6 это было улучшено с сокращением объекта.
function myModule() {
function foo() ...
function bar() ...
return { foo, bar };
}
Теперь со встроенным синтаксисом модуля я изо всех сил пытаюсь найти предпочтительный шаблон, который больше всего похож на описанный выше.
Вариант № 1 с именем экспорта
// export file
function foo() ...
function bar() ...
export { foo, bar };
// import file
import { foo, bar } from './export-file';
foo();
bar();
Вариант №2 по умолчанию экспорт / импорт с деструктуризацией
// export file
function foo() ...
function bar() ...
export default { foo, bar };
// import file
import baz from './export-file';
const { foo, bar } = baz;
foo();
bar();
Вариант # 3 экспорт / импорт по умолчанию с интервалом имен
// export file
function foo() ...
function bar() ...
export default { foo, bar };
//import file
import baz from './export-file';
baz.foo();
baz.bar();
Мне нравится Вариант № 1 с именованным экспортом за простоту, которую он предлагает в синтаксисе импорта «деструктуризация».
import { foo, bar } from './export-file';
Я также хочу продолжить, чтобы экспортированный API модуля был явно определен в нижней части файла экспорта в объекте экспорта.
export { foo, bar };
// OR
export default { foo, bar };
Я все время читаю, что экспорт по умолчанию предпочтительнее, и поэтому я пытался найти предпочтительный шаблон, который включает в себя экспорт по умолчанию, но я неохотно принимаю его, так как он кажется более многословным с небольшими преимуществами (кроме необходимости интервал между именами, или включение именованных и экспорт по умолчанию в некоторых случаях).
Существует ли идиоматический шаблон для раскрывающегося шаблона модуля с синтаксисом модуля ES6?