3

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

我认为需要恢复状态树,因为它包含有用的数据,但该库还包含一个用于持久化 reducers的功能。

const persistedReducer = persistReducer(persistConfig, rootReducer)

我不太明白背后的动机,因为我相信减速器只是改变状态的功能。与状态树中的动态数据相比,这些在代码中定义良好。

我们什么时候应该坚持 reducer?有什么例子说明它为什么有用吗?

4

3 回答 3

2

示例中更好的名称可能是:

const persistingReducer = persistReducer(persistConfig, rootReducer)

作为 Al.G. 在他的评论中提到,persistReducer 返回一个增强的reducer,它包装了您传入的rootReducer,并将根据您传入的配置保留该reducer 的状态。

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

于 2018-08-03T22:39:49.997 回答
1

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

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

使用 Redux-persist,当您刷新 Web 时,它可以调出最新的 redux 会话,您无需再次获取任何内容。因此,当用户刷新时,它已经再次加载了帖子和个人资料。

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

于 2018-08-03T22:28:21.903 回答
0

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

于 2018-08-03T22:54:59.837 回答