【问题标题】:What happens when i use RTK Query with redux-persist?当我将 RTK Query 与 redux-persist 一起使用时会发生什么?
【发布时间】:2021-08-28 19:15:30
【问题描述】:

当我将 Redux Toolkit Query 与 redux-persist 一起使用时会发生什么?

它会使用持久化状态还是重新获取状态?

【问题讨论】:

    标签: redux redux-toolkit redux-persist rtk-query


    【解决方案1】:

    我真的不会这样做。

    恢复的数据可能是各种陈旧的数据,当用户按 F5 时,他们通常希望数据是最新的,而不是一周前的数据。此外,在恢复存储切片时,有关订阅的信息可能会出现问题(因为“订阅组件”从不存在,它们也永远无法卸载,因此永远不会从存储中清除)。

    所以,我会将 api 切片列入黑名单,以免被持久化。

    如果您希望缓存这些内容,请在您的服务器中使用缓存标头。浏览器将为您完成所有缓存,但也允许用户清除缓存或使用 ctrl+shift+r 强制重新获取 - 因此浏览器的行为会超出用户的预期。

    【讨论】:

    • 在我保存身份验证令牌的地方保留一个切片是否安全,或者也应该避免这种情况?
    • 取决于您是否有替代方案。如果可以避免,请避免(使用 httpOnly sameSite 安全 cookie,永远不要让它接触 JS),但如果无法避免,则没有其他选择。
    • @phry 虽然您对网络应用程序的观点是正确的,但渐进式网络应用程序呢?我们确实需要存储离线功能的数据不是吗?
    • Tbh,我会在服务人员级别上比在应用程序级别上更透明地执行类似的操作。但无论哪种方式,RTK 1.7 都可能包含一种从持久性中正确补水的方法,但它仍然是 WIP。欢迎试用并提供反馈:github.com/reduxjs/redux-toolkit/pull/1277
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 2018-06-04
    • 2018-12-05
    • 2022-10-14
    相关资源
    最近更新 更多