apollo缓存中的extraRootIds的目的是什么?
创始人
2024-09-09 10:30:29
0

extraRootIds是Apollo缓存中的一个数组,用于定义根查询节点的其他ID。这些节点将始终存储在缓存中,即使它们的查询没有被触发。

在某些情况下,我们可能希望缓存响应的数据不仅仅在关键查询对象的下层,而是根据某些特定的上下文或实验条件存储在缓存中。如果我们将extraRootIds设置为某些节点的ID,这些节点的查询结果也将被存储在缓存中,并在后续查询中被重用。

以下是设置extraRootIds的示例代码:

import { InMemoryCache } from '@apollo/client';

const cache = new InMemoryCache({ typePolicies: { Query: { fields: { // 添加 extraRootIds 到根查询对象的 fields 中 posts: { // 设置 extraRootIds 为当前用户ID和所有文章ID // 这将确保所有与该用户相关的文章都存储在缓存中 keyArgs: ['userId', 'extraRootIds'], merge(existing, incoming, { args: { userId, extraRootIds } }) { const merged = existing ? existing.slice(0) : []; for (let i = 0; i < incoming.length; ++i) { merged[i] = incoming[i]; } // 对于特定的 extraRootIds,我们可以将其缓存为单独的字段 if (extraRootIds && extraRootIds.includes('featuredPosts')) { merged.featured = incoming.filter(post => post.featured); } return merged; }, }, }, }, }, });

在这个例子中,我们在posts字段的keyArgs属性中添加了extraRootIds,这意味着任何使用posts查询的查询都会将extraRootIds作为参数传递,并将其存储在缓存中。在merge函数

相关内容

热门资讯

透视有挂!wpk辅助插件,德普... 透视有挂!wpk辅助插件,德普之星透视辅助插件,免费测试版(有挂规律)1、这是跨平台的德普之星透视辅...
透视脚本!wpk辅助器安装,w... 透视脚本!wpk辅助器安装,wpk显示有作弊,可靠技巧(往昔是真的有挂);(需添加指定Q群10672...
透视美元局!wepoker底牌... 1、透视美元局!wepoker底牌透视脚本,wpk透视脚本视频,让我来分享经验(有挂总结)2、进入游...
透视真的!德普之星怎么作弊,w... 透视真的!德普之星怎么作弊,wepoker辅助器安装包,安装教程(一直真的有挂)1、每一步都需要思考...
透视ai!wpk辅助器是真的吗... 透视ai!wpk辅助器是真的吗,智星菠萝辅助器,专业讨论(有挂黑科技)1、超多福利:超高返利,海量正...
透视app!wepoker透视... 透视app!wepoker透视脚本安卓,aapoker免费透视脚本,揭秘教程(确实是真的有挂);玩家...
透视私人局!wepoker底牌... 透视私人局!wepoker底牌透视脚本下载,wepoker透视脚本,一分钟快速了解(有挂辅助挂)1、...
透视脚本!aapoker透视脚... 透视脚本!aapoker透视脚本安装包,智星菠萝可以辅助吗,高科技教程(竟然是有挂);1分钟了解详细...
透视辅助!hhpoker透视下... 透视辅助!hhpoker透视下载链接在哪里,wpk有脚本吗,必备辅助推荐(有挂详情)1、任何德州ai...
透视代打!hhpoker透视方... 透视代打!hhpoker透视方法,aapoker免费透视脚本,爆料教程(好像真的有挂);实战中需综合...