redux-persist - 何时持久化减速器?

redux-persist - When to persist reducer?

redux-persist 库提供了将 redux 状态树存储到某种存储中的方法,并在应用程序重新打开时重新水合。

我看到需要恢复状态树,因为它包含有用的数据,但该库还包括 持久化减器

const persistedReducer = persistReducer(persistConfig, rootReducer)

我不太理解背后的动机,因为我认为 reducer 只是改变状态的函数。与状态树中的动态数据相比,这些在代码中定义明确。

什么时候持久化reducer?有什么例子可以说明它为什么有用吗?

我以前用过 redux-persist,它有一个你想使用它的用例。

假设您正在创建一个 Facebook 克隆网站。然后您转到您的个人资料并获取所有 post。现在,如果用户刷新网站,它会将你的 redux 刷新到初始状态,对吗?您可能需要重新加载所有数据,这在这种情况下不是最佳选择。

有了 Redux-persist,当你刷新你的网站时,它可以调出最新的 redux 会话,你不需要再次获取任何东西。因此,当用户刷新时,它已经加载了 post 和配置文件。

如果您仍然对此感到困惑,请告诉我

也许示例中更好的名称是:

const persistingReducer = persistReducer(persistConfig, rootReducer)

如Al.G。在他的评论中提到,persistReducer returns 一个增强的减速器,它包装了您传入的 rootReducer 并将根据您传入的配置保留该减速器的 state

reducer 本身不会持久化,因为它们只是函数。

您可以使用持久化数据像动态菜单一样快速加载信息,您可以在应用请求获取信息时从持久化数据预加载菜单,如果令牌过期您可以保存会话您只需要刷新您的令牌并刷新持久数据