另一种提问方式是,如果你真的只想用localStorage(rehydrate)中保存的数据启动你的应用程序并将每个redux状态更改保存到localStorage(persist),那么更好地使用redux-persist使用自己的解决方案,如Dan Abramov explains here?
我理解redux-persist带有很多其他功能,我自己也开始使用它来使用redux-persist-crosstab(能够处理在不同标签中运行的应用程序之间的更改),但是我想知道在最基本的情况下使用它是否过度。特别是因为它更难理解,有时会做有趣的事情,比如随机调用persist / REHYDRATE。
我错过了这里明显的一切吗? 感谢
答案 0 :(得分:15)
redux-persist
的用法取决于应用程序的用例。
首先,我要强调一下redux-persist
PersistGate的使用会自动在rendering of the components
中提供延迟,直到状态获得persisted
以及显示loading
组件的用法。
根据persistStore
,persistReducer
和persistObject
AutoMerging
的{li> initialStates
基于shallow
和deep
级别
可能是blacklisting
和whitelisting
reducers
shallow
级别persistence
和deep
级persistence
坚持migrations
存储redux-store
的不同版本。
转换为支持不可变,压缩,加密,过滤器等。
考虑到您构建的application
仅用于development
目的,最多只需PersistGate
,persistStore
,可能blacklist
和{{1}减少者,考虑到你知道你的应用程序可能需要什么,它仍然是相当多的工作 。
现在,对于whitelist
级别且易于扩展的应用程序,则需要至少production
我上面列出的功能。如果没有此模块,您可能需要为压缩,加密安装模块等等,找到一种方法可以优雅地存储5 / 7
和{{1}的不同版本}}和redux-store
什么可能符合您的要求,以及retrieve
州的display
。
对此有更多的影响,稍后会遇到。因此,根据项目的要求,我认为使用这个包来管理rehydration