缓存和redux有什么区别

What is the difference between caching and redux

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

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

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

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

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

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

编辑 phry 评论

Redux 不仅仅是一种存储数据的方式,它还是一种 javascript Flux 实现,它是共享 UI 状态管理的设计模式。尽管 您可以使用 Redux 实现 HTTP 缓存,但这不是它的主要目标(显然您必须实现缓存逻辑 ,这不是一项简单的任务).另一方面,React-QuerySWRApollo都是缓存工具。