, Все лучше. ;-)

шлом я использовалвыявление шаблона модуля.

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?

Ответы на вопрос(1)

Ваш ответ на вопрос