You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

疑惑Apollo Client 3未配置字段策略时returnPartialData仍生效的原因

原因解析

  • 默认缓存规范化机制
    Apollo Client 3.x默认开启缓存规范化,会自动为所有查询返回的对象附加__typename字段,并用__typename + id作为唯一缓存键存储独立实体。你在搜索页执行SEARCH查询返回的每个Product类型商品,都会以Product:{id}为键单独存入缓存,而非仅作为搜索结果的嵌套数据存在。
  • 单实体查询的默认读取规则
    从@apollo/client 3.3版本开始,框架默认内置了单实体查询的缓存匹配逻辑:如果你的查询接收id作为入参,且返回类型的__typename和缓存中已存储的实体类型一致,Apollo会自动用入参id匹配对应缓存实体,无需额外配置缓存重定向/字段策略。
  • returnPartialData的效果
    你开启了returnPartialData配置,允许返回字段不完整的缓存数据。所以PRODUCT查询触发时,会先把缓存中已有的id、name、images、price字段组装成半完整数据返回,等服务端请求完成后再返回包含optionSetName、options等字段的完整数据,对应你控制台的两次输出。

内容的提问来源于stack exchange,提问作者jsindos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:39:00