繁体   English   中英

es6 导入,默认导出,

[英]es6 import, export default,

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 }
  • 编辑

更重要的是,为什么要使用第一种形式而不是第二种形式?

一个片段是导出一个返回objectfunction 第二个片段直接返回一个object

导入第一个片段时,您需要调用该函数来获取对象。 同时您可以直接从第二个片段导入对象。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM