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

管理本地状态

与 Apollo 客户端的本地数据交互


在其核心中, 是一个使用 状态管理库,恰好使用 与远程服务器交互。自然地,某些应用程序状态不需要远程服务器,因为它是完全局部的。

Apollo 客户端 使您能够管理和跟踪远程获取的状态,这意味着您可以使用单个 API 与应用程序的 所有 状态进行交互。

它的工作原理

您可以根据需要(如在localStorage 或 Apollo 客户端缓存中)存储应用程序的本地状态。然后,当您对特定的 进行 时,Apollo 客户端将使用您定义的逻辑来获取和填充这些本地数据。您甚至可以在相同的查询中包含本地和远程获取的 字段

GraphQL ServerCacheApollo ClientGraphQL ServerCacheApollo ClientCalculates local fieldsResolves remote fieldsCaches remote fields*Time passes…Calculates local fieldsFetches remote fields (now cached)Queries local and remote fieldsQueries remote fieldsReturns remote fieldsReturns ALL fieldsExecutes same queryReturns ALL fields

为了支持这一流程,Apollo Client 3 引入了两套互补机制来管理本地状态:字段策略响应式变量

* Apollo Client 之前版本中的本地解析器 API仍然可用,但已弃用。使用此 API 时可能需要进行一些额外操作,例如,在远程字段缓存的@client(always:true)指令会重新计算本地字段解析器。

字段策略和仅本地字段
3.0

字段策略允许您定义查询特定字段时会发生什么,包括在您的 GraphQL 服务器模式中未定义的字段。通过为这些仅本地字段定义字段策略,您可以使用存储在任何地方的数据填充它们,例如localStorage响应式变量

单个 GraphQL 查询可以包含仅本地字段和远程检索字段。在每个仅本地字段的策略中,您指定一个函数,该函数定义该字段的值如何填充。

开始使用仅本地字段

响应式变量允许您在应用程序的任何地方读取和写入本地数据,而不需要使用 GraphQL 操作来执行此操作。字段策略可以是一个响应式变量,用来填充字段的当前值。

响应式变量不在 Apollo Client 缓存中存储,因此它们不需要符合缓存类型的结构。您可以在它们中存储任何想要的内容。

每当响应式变量的值发生变化时,Apollo Client会自动检测到这种变化。任何依赖已更改变量的活动查询的字段都会自动更新。

开始使用响应式变量

在 Apollo Client 的早期版本中,您通过定义本地解析器来填充和修改仅本地字段。这些解析器在结构和目的上与您的 GraphQL 服务器定义的解析器类似。

此功能在 Apollo Client 3 中仍然可用,但在未来的主要版本更新中将被迁移出核心模块。

了解更多关于本地解析器的信息

上一部分
keyArgs
下一部分
仅本地字段
评分文章评分在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc. 有限公司,即 Apollo GraphQL。

隐私政策

公司