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

问题描述 投票:0回答:3

我的设置

  • Typescript React 应用程序
  • 后端 GraphQL API
  • 阿波罗客户端
  • 使用 Apollo 客户端开发工具扩展进行检查

我的问题

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

谢谢,

reactjs graphql apollo apollo-client
3个回答
3
投票

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


0
投票

我最近遇到了这个问题,在我的实例(react 18.2.0 & apollo-client 3.8.6)中,这是由于react StrictMode造成的。

有人在 GitHub 上为其开了一张票。幸运的是,它不会影响生产版本,因为 StrictMode 仅用于开发。


0
投票
根据 Apollo 客户端文档(于 2023 年末更新):

活动查询是当前页面上的组件使用的查询。

-- https://www.apollographql.com/docs/react/data/mutations/#refetching-queries

© www.soinside.com 2019 - 2024. All rights reserved.