在Redux中,状态实际存储在哪里?

我对这个问题进行了一些搜索,但发现了非常模糊的答案。在redux中,我们知道状态存储为对象。但是这种状态实际上存储在哪里?它是否以某种方式保存为文件,以后我们可以访问?我所知道的是,它不会以Cookie格式或浏览器的本地存储方式存储它。

回答:

Redux中的状态存储在Redux存储中的内存中。

这意味着,如果刷新页面,该状态将消失。

您可以想象该商店看起来像这样:

function createStore(reducer, initialState) {

let state = initialState // <-- state is just stored in a variable that lives in memory

function getState() {

return state

}

function dispatch(action) {

state = reducer(state, action) // <-- state gets updated using the returned value from the reducer

return action

}

return {

getState,

dispatch

}

}

redux中的状态只是一个保留在内存中的变量,因为所有redux函数都通过状态引用(通过closure)。

这是正在发生的事情的简化示例:

function example() {

let variableAvailableViaClosure = 0

function incrementTheClosureVariable() {

variableAvailableViaClosure += 1

}

function getTheClosureVariable() {

return variableAvailableViaClosure

}

return {

incrementTheClosureVariable,

getTheClosureVariable

}

}

let data = example()

// at this point example is finished

// but the functions it returned

// still have access to the (internal) variable via closure

console.log(

data.getTheClosureVariable() // 0

)

data.incrementTheClosureVariable()

console.log(

data.getTheClosureVariable() // 1

)

此外,声明

在redux中,我们知道状态存储为对象。

是不正确的。redux中的状态可以是任何有效的javascript值,而不仅仅是对象。通常,将它作为对象(或像数组这样的特殊对象)是最有意义的,因为它允许更灵活的数据结构(但是,如果您愿意,可以将状态设为数字)

查看实际的Redux

实现以获取更多详细信息。

如果希望状态保留在cookie或localStorage中,则可以增强存储,以便在更新内存中的状态之外,还将状态保存到所需的存储中(并在初始化存储时从该存储中加载)

以上是 在Redux中,状态实际存储在哪里? 的全部内容, 来源链接: utcz.com/qa/430950.html

回到顶部