【问题标题】:Why use redux-persist over manually persisting state to localStorage?为什么要使用 redux-persist 而不是手动将状态持久化到 localStorage?
【发布时间】:2018-03-11 16:40:07
【问题描述】:

另一种提问方式是,如果您真的只想使用保存在 localStorage(再水化)中的数据启动您的应用并将每个 redux 状态更改保存到 localStorage(持久化),那么使用 redux-persist 比使用您的像Dan Abramov explains here这样的自己的解决方案?

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

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

【问题讨论】:

    标签: reactjs redux react-redux redux-persist


    【解决方案1】:

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

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

    • PersistGate 的使用会自动在rendering of the components 中提供延迟,直到状态变为persisted 以及用于显示loading 组件。

    • 要基于多种类型(例如persistStorepersistReducerpersistObject)持久化的自定义函数

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

    • 可能是blacklistingwhitelisting最重要的特性reducers

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

    • 坚持使用migrations 来存储redux-store 的不同版本。

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

    考虑到您构建的application 仅用于development 目的,那么它最多需要PersistGatepersistStore 并且可能需要减速器的blacklistwhitelist,这仍然是大量的工作 考虑到你知道你的应用程序可能需要什么

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

    这还有很多含义,稍后会遇到。因此基于项目的需求,我认为使用这个包来管理redux-store storage是有好处的

    【讨论】:

    • 我有一个问题,localStorage 永远不会重新更新!
    • 您可能需要发布您的代码或提出单独的问题以帮助查看详细信息
    猜你喜欢
    • 1970-01-01
    • 2021-06-24
    • 2022-11-11
    • 2019-04-14
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2022-12-31
    相关资源
    最近更新 更多