ES6 импорт, экспорт по умолчанию, - PullRequest
1 голос
/ 23 марта 2020

https://github.com/rt2zz/redux-persist показывает следующий фрагмент кода

const persistedReducer = persistReducer(persistConfig, rootReducer)

export default () => {
  let store = createStore(persistedReducer)
  let persistor = persistStore(store)
  return { store, persistor }
}

Вы могли бы вместо этого сделать это, и в чем разница между ними?

const persistedReducer = persistReducer(persistConfig, rootReducer)

let store = createStore(persistedReducer)
let persistor = persistStore(store)
export { store, persistor }
  • РЕДАКТИРОВАТЬ

Что более важно, зачем использовать первую форму вместо второй?

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Первый фрагмент экспортирует function, который возвращает object. второй фрагмент возвращает object напрямую.

При импорте первого фрагмента, вам нужно вызвать функцию, чтобы получить объект. Между тем Вы можете напрямую импортировать объект из второго фрагмента.

0 голосов
/ 23 марта 2020

vi a.mjs затем напишите:

export default () => {
  let store = 'createStore';
  let persistor = 'persistStore';
  return { store, persistor }
}

let store = 'createStore';
let persistor = 'persistStore';
export { store, persistor }

vi b.mjs затем напишите:

import a from './a.mjs';
import * as $a from './a.mjs';
import { store, persistor } from './a.mjs';

console.log('export default function:', a);
console.log('export object:', $a);
console.log('export object.default:', $a.default);
console.log('export { store, persistor }:', store, persistor);

node --experimental-modules b.mjs

И вы получите результат как это:

export default function: [Function: default]
export object: [Module] {
  default: [Function: default],
  persistor: 'persistStore',
  store: 'createStore'
}
export object.default: [Function: default]
export { store, persistor }: createStore persistStore
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...