Javascript 何时使用apollo链接状态以及何时在内存中使用apollo缓存

Javascript 何时使用apollo链接状态以及何时在内存中使用apollo缓存,javascript,reactjs,graphql,apollo,react-apollo,Javascript,Reactjs,Graphql,Apollo,React Apollo,我们正在缓慢地将graphql添加到react项目中,并替换现有的redux集成。所以我试图理解阿波罗号上的缓存,我看到了两件事 阿波罗缓存内存() 阿波罗链路状态() 我们已经查询到主页上的应用程序列表,此应用程序列表将在其他页面上使用。因此,我尝试的一个选项是调用父容器中的应用列表查询,并在子页面中使用client.readQuery,这样对graphql服务器的调用将只在容器中发生,而在其他页面中,它将从缓存中被调用。但我看到了一些关于在类似场景中使用阿波罗链接状态的帖子。那么,在这里以及

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

  • 阿波罗缓存内存()
  • 阿波罗链路状态()

  • 我们已经查询到主页上的应用程序列表,此应用程序列表将在其他页面上使用。因此,我尝试的一个选项是调用父容器中的应用列表查询,并在子页面中使用client.readQuery,这样对graphql服务器的调用将只在容器中发生,而在其他页面中,它将从缓存中被调用。但我看到了一些关于在类似场景中使用阿波罗链接状态的帖子。那么,在这里以及何时在内存中使用apollo cache以及何时使用apollo链接状态,最好的方法是什么?

    您不应该将
    apollo cache inmemory
    直接与
    apollo链接状态进行比较
    apollo cache inmemory
    用于在
    apollo客户端
    上处理缓存,您无需编写任何自定义代码即可使其工作(除了告诉
    apollo客户端
    使用它之外)。从
    api
    获取的任何数据都会自动缓存

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

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