Redux createStore 函数中使用的 initialState 是什么

What is the initialState used for in Redux createStore function

全部:

当我阅读 Redux 的源代码时,在它的 createStore 中:

function createStore(reducer, initialState, enhancer) {
    ......
    var currentState = initialState;
    ......
    dispatch({ type: ActionTypes.INIT });
    ......
}

创建新store时,将currentState设置为initialState,并在init dispatch中调用reducer更新默认state值。我想知道:通常currentStatew会从reducer中得到一个值,那么initialState的目的是什么?

谢谢

通常,只需将初始状态指定为 reducer 默认参数,让每个 reducer 自己管理它。

但是在某些情况下,您希望使用现有数据“水化”状态。例如,您可能已将整个状态树保存在 localStorage 中,并希望在启动时从那里加载它,或者您可能是 rendering on the server,并希望加载您保存在服务器上的初始状态来自 HTML.

在这种情况下,initialStatecreateStore() 很有用,因为它可以让您有选择地混合树中已预先填充数据的某些部分。在这种情况下,它会“赢”到 reducer 默认状态,这通常是您想要的行为。 initialState 中存在的状态树部分将按原样使用,缺失的部分将从缩减器中检索。这使得“恢复”状态的某些部分成为可能,但总是重新初始化其他部分。

希望 应该对这项技术提供更深入的解释。