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

时间:2018-03-11 16:40:07

标签: reactjs redux react-redux redux-persist

另一种提问方式是,如果你真的只想用localStorage(rehydrate)中保存的数据启动你的应用程序并将每个redux状态更改保存到localStorage(persist),那么更好地使用redux-persist使用自己的解决方案,如Dan Abramov explains here

我理解redux-persist带有很多其他功能,我自己也开始使用它来使用redux-persist-crosstab(能够处理在不同标签中运行的应用程序之间的更改),但是我想知道在最基本的情况下使用它是否过度。特别是因为它更难理解,有时会做有趣的事情,比如随机调用persist / REHYDRATE。

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

1 个答案:

答案 0 :(得分:15)

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

首先,我要强调一下redux-persist

的一些主要特征
  • PersistGate的使用会自动在rendering of the components中提供延迟,直到状态获得persisted以及显示loading组件的用法。

  • 根据persistStorepersistReducerpersistObject

  • 等多种类型保留自定义函数 来自不同州的AutoMerging的{​​li>

    initialStates基于shallowdeep级别

  • 可能是blacklistingwhitelisting reducers

  • 的最重要特征
  • shallow级别persistencedeeppersistence

  • 的嵌套持久性
  • 坚持migrations存储redux-store的不同版本。

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

考虑到您构建的application仅用于development目的,最多只需PersistGatepersistStore,可能blacklist和{{1}减少者,考虑到你知道你的应用程序可能需要什么,它仍然是相当多的工作

现在,对于whitelist级别且易于扩展的应用程序,则需要至少production我上面列出的功能。如果没有此模块,您可能需要为压缩加密安装模块等等,找到一种方法可以优雅地存储5 / 7和{{1}的不同版本}}和redux-store什么可能符合您的要求,以及retrieve州的display

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

是有益的。