猿问

es6导入,导出默认,

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 }

编辑

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


料青山看我应如是
浏览 107回答 2
2回答

DIEA

第一个片段是导出 a function,它返回 a object。第二个片段直接返回 a 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
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答