从10月8日至10日加入我们,在纽约市了解关于GraphQL联邦和API平台工程的最新技巧、趋势和新闻。加入2024年纽约市的GraphQL峰会
文档
免费开始

Apollo Client中的分页

概述


允许您从您的图中精确获取需要的 ,没有不必要的开销。这有助于保持网络响应小且快速。

然而, GraphQL 并不会自动 保证 响应小。这在您 包含 列表 的字段时表现得尤为明显。列表可以包含无限数量的元素,这可能导致看似简单的 查询 给出巨大的响应:

query GetBookTitles {
books {
title
}
}

如果你的 包含数千或数百万本书,这个 查询 可能返回 比你需要的数据多得多的数据。为了解决这个问题, 可以对他们的列表字段进行 分页

当客户端查询分页列表 字段时,服务器只返回列表的部分(或“页面”)元素。客户端 查询 包括 用于指示 服务器应返回哪个页面

GraphQL serverClient appGraphQL serverClient appquery GetBookTitles(offset=0 limit=20)Returns the first 20 list elementsquery GetBookTitles(offset=20 limit=10)Returns the next 10 list elements

此图说明了 基于偏移 的分页,其中客户端基于列表中的绝对索引(偏移)和要返回的最大元素数(限制)请求一个页面。

服务器可以为特定的列表 字段 使用多种不同的分页策略:基于偏移、 基于的、基于页码的、向前的、向后的等等。每种策略都需要一组不同的 参数。因为这些策略在 不同情况下可能会有用,Apollo 或 GraphQL 规范都没有定义一个规范分页策略。

Apollo 客户端方法

而不是推荐一种特定的分页策略, 提供灵活的缓存 API,帮助你合并分页列表 字段 的查询结果,无论你的 使用的是哪种分页策略。 由于你可以使用无状态函数表示这些自定义分页策略,你可以为每个使用相同策略的列表字段重用同一个函数。

准备好开始分页了吗?先了解 核心分页 API

上一页
高级主题
下一页
核心 API
评分文章评分在GitHub上编辑在GitHub上编辑论坛Discord

©2024Apollo Graph Inc.,以Apollo GraphQL的名义。

隐私政策

公司