Apollo 客户端什么是主动查询?

Sim*_*ven 16 apollo reactjs graphql apollo-client

我的设置

  • Typescript 反应应用程序
  • 后端 GraphQL API
  • 阿波罗客户端
  • 使用 Apollo 客户端 Devtools 扩展进行检查

我的问题

  • 什么是主动查询?Apollo 文档谈论了很多主动查询,但我很难得到一个实际的定义。
  • 据我了解,主动查询基本上是从组件状态到 Apollo 客户端缓存的整体全局状态的链接。它是否正确?
  • 当我的反应组件中只有一个查询时,为什么我会看到列出了 2 个查询(请参阅屏幕录制)。例如,在我的事件页面中,我调用查询listEvents,但当我加载页面时,我发现该查询在我的活动查询中出现了两次。对于任何新查询来说似乎都是相同的。
  • 当我只是在相同页面之间来回导航并获取相同数据时,为什么我的活动查询不断增加。根据我的理解,我希望在这种情况下活动查询的数量不会增加,因为我没有引入新的查询。
  • 我担心我的设置中存在一些问题,导致创建新的活动查询而不是“回收”现有查询。我对吗?如果是这样,我该如何调试/修复这个问题?

主动查询屏幕录制

谢谢,

Emm*_*ard 3

主动查询是在已安装的组件中运行的查询,因此 Apollo 知道在更新缓存时要更新哪些查询结果。如果您确定没有同时运行这些查询,您可以检查您的路由库,看看它们是否没有将您的最后一页保留在缓存中。