javascript-什么时候使用apollo-link-state和什么时候使用apollo-cache-memory

我们正在将graphql缓慢添加到我们的react项目中,并替换现有的redux集成.因此,我试图了解阿波罗中的缓存并看到了两件事.

>阿波罗缓存内存(https://www.npmjs.com/package/apollo-cache-inmemory)
>阿波罗链接州(https://github.com/apollographql/apollo-link-state)

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

解决方法:

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

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

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

上一篇:Postman 的替代品来了


下一篇:[Graphql] Apollo Client Example