12

另一种询问方式是,如果您真的只想使用保存在 localStorage(rehydrate)中的数据启动您的应用程序并将每个 redux 状态更改保存到 localStorage(persist),那么使用redux-persist比使用您自己的解决方案更好,例如丹·阿布拉莫夫在这里解释

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

我在这里遗漏了什么明显的东西吗?

4

1 回答 1

27

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

首先,让我强调一些主要特点redux-persist

  • PersistGate的使用会自动提供延迟,rendering of the components直到状态persisted与显示loading组件的使用一致。

  • 自定义函数基于多种类型持续存在,例如 persistStore,persistReducerpersistObject

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

  • 可能是最重要的特征blacklistingwhitelistingreducers

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

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

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

考虑到application您构建的只是出于development目的,那么它最多需要PersistGatepersistStore并且可能需要减速器blacklist考虑到您知道您的应用程序可能需要什么whitelist,这仍然是相当多的工作

现在对于production水平且易于扩展的应用程序,它至少需要5 / 7我上面列出的功能。如果没有这个模块,您可能需要安装用于压缩加密等的模块,找到一种方法来优雅地存储不同版本的redux-storeretrieve以及display可能符合您要求的内容,以及rehydrationredux-store状态的。

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

于 2018-03-26T11:46:54.930 回答