reactjs - 为什么使用 redux-persist 而不是手动将状态持久化到 localStorage?

标签 reactjs redux react-redux redux-persist

另一种询问方式是,如果您真的只想使用 localStorage 中保存的数据(补充)启动应用程序并将每个 redux 状态更改保存到 localStorage(持久),则使用 redux-persist比使用您自己的解决方案(如 Dan Abramov explains here)更好?

我知道 redux-persist 带有很多其他功能,我自己开始使用它是为了能够使用 redux-persist-crosstab (能够处理在不同选项卡中运行的应用程序之间的更改),但是我想知道将它用于最基本的场景是否有点过分了。特别是因为它更难理解并且有时会做一些有趣的事情,例如随机调用 persist/REHYDRATE

我在这里遗漏了任何明显的东西吗?

最佳答案

redux-persist的用法取决于应用程序的用例。

首先,让我重点介绍 redux-persist 的一些主要功能

  • PersistGate 的使用它会自动提供 rendering of the components 的延迟直到状态得到 persisted以及显示 loading 的用法组件。

  • 基于多种类型保留的自定义函数,例如 persistStore , persistReducerpersistObject

  • AutoMerging initialStates的来自不同的州基于shallowdeep级别

  • 可能是blacklisting最重要的特征和whitelisting reducers

  • shallow 的嵌套持久性级别 persistencedeep级别 persistence

  • 坚持 migrations存储 redux-store 的不同版本.

  • 转换以支持不可变压缩加密过滤等。

考虑到application你构建只是为了development目的,那么最多需要 PersistGate , persistStore可能blacklistwhitelist考虑到您知道应用程序可能需要什么,这仍然是大量的工作

现在对于 production 的应用程序水平并且易于缩放,那么至少需要 5 / 7我上面列出的功能。如果没有此模块,您可能需要安装压缩加密等模块,找到一种方法来优雅地存储不同版本的 redux-storeretrievedisplay什么可能符合您的要求,以及 rehydration其中redux-store状态。

这还有更多的含义,稍后会遇到。因此,根据项目的要求,我认为使用这个包来管理 redux-store storage 是有益的。

关于reactjs - 为什么使用 redux-persist 而不是手动将状态持久化到 localStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49222396/

相关文章:

reactjs - 如何处理redux表单提交的数据

firebase - 如何在没有错误提示的情况下调试 RN Expo 应用程序中的白屏页面(无内容显示)

javascript - 如何在 React JS 中将 "dispatch"作为导出函数?

node.js - ExpressJS 服务器每晚离线 - 502 Bad Gateway

css - Tailwind 将元素对齐到父级的底部

html - 在 React Firebase Web 应用程序中使用 Google Adsense 时具有 CORS

reactjs - React router 4 History.listen 永远不会触发

javascript - 如何向 cookie 添加事件监听器,以便在 cookie 更新或过期时发出通知

reactjs - React props 不随 redux store 更新

javascript - React - forceUpdate 中的回调有什么作用?