我正在研究React-Redux,我有一个像这样的例子
const todoApp = combineReducers({
todos,
visibilityFilter
})
export default todoApp /*from reducers*/
然后我
import reducer from './reducers'
const store = createStore(reducer)
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
因此,它没有在./reducers中导出任何缩减器,并且语法导入在ES6中不是import * as reducer
。它为什么有效?
答案 0 :(得分:3)
export default todoApp
因此,当import reducer from './reducers'
被调用时,todoApp
存储在reducer
内。这就是为什么我们使用默认关键字。变量名称不需要是reducer
,它可以是任何名称。
通过使用default关键字,将单个值或回退值传递给导入它的文件
同样,如果我们导出一个没有默认值的函数 例如
export function someFunc(){...}
我们可以通过
导入它import {someFunc} from '/file/path.js'
编辑:文件中只能有一个默认导出。当我们导入其他组件时,我们需要将组件名称指定为标识符(例如{someFunc}
)。对于默认导入,我们可以使用任何我们想要的标识符。
答案 1 :(得分:1)
从模块导出默认值时,基本上导出匿名变量。因此,当您导入类似import something from 'somewhere'
之类的内容时,可以选择在导入文件中使用的任何名称。
答案 2 :(得分:1)
导出默认todoApp