在
上找到以下代码段http://www.jchapron.com/2015/08/14/getting-started-with-redux/
import React from 'react';
import { createStore as initialCreateStore, compose } from 'redux';
export let createStore = initialCreateStore;
if (__DEV__) {
createStore = compose(
require('redux-devtools').devTools(),
require('redux-devtools').persistState(
window.location.href.match(/[?&]debug_session=([^&]+)\b/)
),
createStore
);
为什么作者将initialCreateStore
导入为createStore
,然后将相同的结果重新分配给createStore
从一开始就导入createStore
做同样的事情吗?
答案 0 :(得分:0)
为什么作者将
initialCreateStore
导入createStore
?
他没有,反之亦然。 import
正在模块范围内创建initialCreateStore
绑定。
为什么然后他将同样的结果重新分配给
createStore
?
因为冗长。他希望明确表示它只是导出绑定的初始值。
从一开始就导入
createStore
做同样的事情吗?
不,因为在ES6中导入的绑定是“不可变的” - 它们可以更改(如果它们在导出它们的模块中发生更改),但它们无法在导入模块中分配。
但是,如果createStore
存在,作者会想要用自己的__DEV__
覆盖,所以他确实需要用export let createStore
声明自己的绑定。