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

GraphQL:Apollo客户端缓存如何保持数据与服务器的一致性?,graphql,apollo,apollo-client,apollo-cache-inmemory,Graphql,Apollo,Apollo Client,Apollo Cache Inmemory,我正在使用apollo客户端和apollo内存缓存 假设我有两个页面:项目列表页面和项目详细信息页面 项目列表页面显示(通过使用客户端查询(…)获取数据): 项目A B项 项目C 当导航到项目B的项目详细信息页面时,我使用变异技术对项目B进行变异,包括store.readQuery和store.writeQuery,如下所述: 现在,在导航回项目列表页面之前,假设我的应用程序的另一个用户对项目A进行了修改 我的问题是: 当我导航回项目列表页面时,我是从缓存还是从服务器获取数据?客户端查询(…

我正在使用
apollo客户端
apollo内存缓存

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

项目列表页面显示(通过使用
客户端查询(…)获取数据)

  • 项目A
  • B项
  • 项目C
当导航到项目B的项目详细信息页面时,我使用变异技术对项目B进行变异,包括
store.readQuery
store.writeQuery
,如下所述:

现在,在导航回项目列表页面之前,假设我的应用程序的另一个用户对项目A进行了修改

我的问题是:


  • 当我导航回项目列表页面时,我是从缓存还是从服务器获取数据?
    客户端查询(…)
    始终从服务器获取数据?如果您想保持数据同步,即使其他用户更改了数据,您需要始终从服务器获取数据,或者在服务器和客户端上实现订阅。这样,当数据更改时,您可以推送新事件,并让客户端订阅这些更改以保持同步他们的缓存会实时更新。

    啊,对了,现在越来越清晰了。但是
    客户端.query
    调用默认情况下总是从服务器获取数据吗?客户端的行为可以使用该选项在每次查询的基础上进行修改。
    缓存优先
    是默认设置。非常感谢。我现在已经得到了它。