Javascript 何时使用apollo链接状态以及何时在内存中使用apollo缓存
我们正在缓慢地将graphql添加到react项目中,并替换现有的redux集成。所以我试图理解阿波罗号上的缓存,我看到了两件事Javascript 何时使用apollo链接状态以及何时在内存中使用apollo缓存,javascript,reactjs,graphql,apollo,react-apollo,Javascript,Reactjs,Graphql,Apollo,React Apollo,我们正在缓慢地将graphql添加到react项目中,并替换现有的redux集成。所以我试图理解阿波罗号上的缓存,我看到了两件事 阿波罗缓存内存() 阿波罗链路状态() 我们已经查询到主页上的应用程序列表,此应用程序列表将在其他页面上使用。因此,我尝试的一个选项是调用父容器中的应用列表查询,并在子页面中使用client.readQuery,这样对graphql服务器的调用将只在容器中发生,而在其他页面中,它将从缓存中被调用。但我看到了一些关于在类似场景中使用阿波罗链接状态的帖子。那么,在这里以及
我们已经查询到主页上的应用程序列表,此应用程序列表将在其他页面上使用。因此,我尝试的一个选项是调用父容器中的应用列表查询,并在子页面中使用client.readQuery,这样对graphql服务器的调用将只在容器中发生,而在其他页面中,它将从缓存中被调用。但我看到了一些关于在类似场景中使用阿波罗链接状态的帖子。那么,在这里以及何时在内存中使用apollo cache以及何时使用apollo链接状态,最好的方法是什么?您不应该将
apollo cache inmemory
直接与apollo链接状态进行比较apollo cache inmemory
用于在apollo客户端
上处理缓存,您无需编写任何自定义代码即可使其工作(除了告诉apollo客户端
使用它之外)。从api
获取的任何数据都会自动缓存
apollo链接状态
但是用于客户端缓存,例如浏览器的网络状态或当前活动选项卡。通常不发送回后端服务器的状态
这样,您只需要考虑是否需要客户端缓存。在我看到的大多数情况下,一个项目最终会同时使用这两种方法