另一种询问方式是,如果您真的只想使用 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
,persistReducer
和persistObject
AutoMerging
initialStates
的来自不同的州基于shallow
和deep
级别可能是
blacklisting
最重要的特征和whitelisting
reducers
shallow
的嵌套持久性级别persistence
和deep
级别persistence
坚持
migrations
存储redux-store
的不同版本.转换以支持不可变、压缩、加密、过滤等。
考虑到application
你构建只是为了development
目的,那么最多需要 PersistGate
, persistStore
可能blacklist
和whitelist
考虑到您知道应用程序可能需要什么,这仍然是大量的工作。
现在对于 production
的应用程序水平并且易于缩放,那么至少需要 5 / 7
我上面列出的功能。如果没有此模块,您可能需要安装压缩、加密等模块,找到一种方法来优雅地存储不同版本的 redux-store
和retrieve
和display
什么可能符合您的要求,以及 rehydration
其中redux-store
状态。
这还有更多的含义,稍后会遇到。因此,根据项目的要求,我认为使用这个包来管理 redux-store storage
是有益的。
关于reactjs - 为什么使用 redux-persist 而不是手动将状态持久化到 localStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49222396/