【问题标题】:When to use apollo-link-state and when to use apollo-cache-inmemory何时使用 apollo-link-state 以及何时使用 apollo-cache-inmemory
【发布时间】:2018-11-10 19:49:01
【问题描述】:

我们正在慢慢地将 graphql 添加到我们的 react 项目中,并替换现有的 redux 集成。所以我试图了解 apollo 中的缓存并看到了两件事。

  1. apollo-cache-inmemory (https://www.npmjs.com/package/apollo-cache-inmemory)
  2. apollo-link-state (https://github.com/apollographql/apollo-link-state)

我们有查询调用主页上的应用程序列表,这个应用程序列表将在其他页面上使用。所以我尝试的一个选项是调用父容器中的应用程序查询列表并在子页面中使用 client.readQuery,这样对 graphql 服务器的调用将仅在容器中发生,而在其他页面中它将发生从缓存中调用。但是我看到了一些关于在与此类似的场景中使用 apollo-link-state 的帖子。那么这里用什么方法最好,什么时候用apollo-cache-inmemory,什么时候用apollo-link-state?

【问题讨论】:

    标签: javascript reactjs graphql apollo react-apollo


    【解决方案1】:

    您不应将apollo-cache-inmemory 直接与apollo-link-state 进行比较。 apollo-cache-inmemory 用于处理Apollo Client 上的缓存,您无需编写任何自定义代码即可使其工作(除了告诉Apollo Client 使用它)。您从api 获取的任何数据都会自动缓存。

    apollo-link-state 但是用于客户端缓存,例如浏览器的 NetworkStatus 或当前活动选项卡。通常不发送回后端服务器的状态。

    因此,您只需要考虑是否需要客户端缓存。在我看到的大多数情况下,一个项目最终会同时使用两者。

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 2019-06-30
      • 2019-03-31
      • 2020-02-01
      • 2020-01-06
      • 2019-01-10
      • 2019-02-13
      • 2018-09-05
      • 1970-01-01
      相关资源
      最近更新 更多