GraphQL:Apollo客户端缓存如何工作以保持与服务器的数据一致性?

我将nullapollo-client一起使用。

假设我有2页:项目列表页面和项目详细信息页面。

显示

项目列表页面(通过使用apollo-cache-inmemory获取数据:

  • 项目A
  • 项目B
  • 项目C

导航到项目B的项目详细信息页时,我使用涉及https://www.apollographql.com/docs/react/caching/cache-interaction/#updating-after-a-mutationclient.query(...)store.readQuery的突变技术来突变项目B:function wrapper

现在,在导航回 Item List 页面之前,假设我的应用程序的另一个用户确实突变为Item A。

我的问题:

  1. 当我导航回 Item List 页面时,我是从缓存还是从服务器获取数据store.writeQuery是否总是从服务器获取数据? ?

  2. 如果我从缓存中获取数据,然后如何保持数据与服务器的一致性? (目标是始终在列表中显示更新的项目,例如项目A-在优化缓存的同时与服务器同步)

iCMS 回答:GraphQL:Apollo客户端缓存如何工作以保持与服务器的数据一致性?

如果即使其他用户更改了数据也要保持同步,则需要始终从服务器获取数据,或者在服务器和客户端上都实现订阅。这样,您就可以在数据更改时推送新事件,并让客户端订阅这些更改,以保持其缓存的实时更新。

本文链接:https://www.f2er.com/2290140.html

大家都在问