为什么使用redux-persist而不是手动将状态保存到localStorage?

mez*_*zod 5 reactjs redux react-redux redux-persist

另一种方式来问是,如果你真的只想与保存在localStorage的(补充水分)的数据开始您的应用程序和保存每Redux的状态变化到localStorage的(坚持)使用终极版-坚持用你自己喜欢的解决方案更好丹阿布拉莫夫在这里解释一下

我明白了终极版 - 坚持自带了很多其他功能,而我自己开始使用它能够使用终极版 - 坚持 - 交叉表(要能应对不同的选项卡上运行的应用程序之间的变化),但我不知道是否是过度使用它以用于最基本的场景.特别是因为它更难理解,有时会做有趣的事情,比如随机调用persist/REHYDRATE.

我错过了这里明显的一切吗?谢谢

Pri*_*dya 16

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

首先让我重点介绍一些主要特征 redux-persist

  • 使用PersistGate会自动提供延迟,rendering of the components直到状态persisted与用于显示loading组件的用法相符.

  • 自定义函数可基于多种类型(例如 persistStore,persistReducer和)保持persistObject

  • AutoMerginginitialStates基于不同的状态shallowdeep水平

  • 也许最重要的特征blacklistingwhitelistingreducers

  • 嵌套持久shallow等级persistencedeep等级persistence

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

  • 转换为支持不可变,压缩,加密,过滤等.

考虑到application你建立只是为development目的,那么这将至多需要PersistGate,persistStore而且很可能blacklistwhitelist减速机,它仍然会的大量工作, 考虑到你是知道的,你可能需要为您的应用程序.

现在对于production水平且易于扩展的应用程序,那么它将需要5 / 7我上面列出的至少一些功能.如果没有此模块,您可能需要安装模块以进行压缩,加密等等,找到一种方法可以优雅地存储不同版本的redux-store,retrieve以及display可能符合您要求的模块rehydration以及该redux-store状态.

对此有更多的影响,稍后将会遇到.因此,根据项目的要求,我认为使用这个包来管理redux-store storage