微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缓存和redux有什么区别

如何解决缓存和redux有什么区别

我想知道 redux 或上下文或任何类型的应用程序状态存储与客户端缓存之间有什么区别,具体示例为 Apollo's client side cache

我一般从 this answer 了解到应用程序状态存储,例如 redux 或上下文,是一种缓存形式,它所做的是缓存,或者在这种情况下,“存储”RAM 中的信息。是什么让 Apollo 的客户端缓存与众不同?它是一样的,只是像使用 redux 一样存储数据,还是做一些不同的事情?谢谢。

解决方法

Apollo 或服务器状态库(如 React-Query)提供了从服务器获取数据并将结果存储在客户端内存中的工具,就像您使用 Redux 或 Context(或仅处于组件状态)一样。

但它们也提供工具来进行更复杂的缓存,以提供流畅的用户体验和带宽优化:

  • 允许您为每个请求设置缓存策略,
  • 定义缓存持续时间,
  • 在需要时使缓存条目无效(例如在突变之后,当服务器数据更改时)
  • 定义错误重试策略,
  • 管理后台定期刷新,
  • ...

这些工具旨在以高效的方式处理您的 UI 应用中的服务器状态。这涉及到存储数据,但这只是一个体面的 HTTP 缓存工具的第一步(也是简单的)。

编辑来自 phry 条评论

Redux 不仅仅是一种存储数据的方式,它还是一种 javascript Flux 实现,它是一种用于共享 UI 状态管理的设计模式。事件虽然 you can implement a HTTP cache with Redux,但这不是它的主要目标(显然您必须实现缓存逻辑 which is not a trivial task)。另一方面,React-QuerySWRApollo 是缓存工具。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。