redux-persist库提供了将redux状态树存储到某些类型的存储中的方法,并在重新打开应用程序时重新水化 .
我认为需要恢复状态树,因为它包含有用的数据,但该库还包含 persisting reducers 的功能 .
const persistedReducer = persistReducer(persistConfig, rootReducer)
我不太明白背后的动机,因为我认为减速器只是改变状态的功能 . 与状态树中的动态数据相比,这些在代码中定义良好 .
When should we persist reducer? Any example showing why it is helpful?
3 回答
也许在示例中更好的名称是:
作为Al.G.在他的评论中提到,persistReducer返回一个增强的reducer,它包装你传入的rootReducer,并根据你传入的配置保存reducer的 state .
减速器本身不会持久化,因为它们只是功能 .
我之前使用过redux-persist,它有一个用例你想要使用它 .
假设您正在创建一个Facebook克隆网站 . 然后,您转到您的 Profiles 并获取所有帖子 . 现在,如果用户刷新网站,它会将你的redux刷新到初始状态吗?您可能需要重新加载每个数据,这在这种情况下不是最佳的 .
使用Redux-persist,当您刷新Web时,它可以显示最新的redux会话,您无需再次获取任何内容 . 因此,当用户刷新时,它已经再次加载了帖子和 Profiles .
如果您仍然对此感到困惑,请告诉我
您可以使用持久数据以动态菜单的速度加载信息,您可以在应用程序请求获取信息时预先加载持久数据中的菜单,如果令牌过期您可以保存会话,只需刷新令牌并刷新持久数据