mcpField
R
react-fetch-cache-patterns

react-fetch-cache-patterns

github.com/pproenca开发218170 次安装11 周前更新
代码仓库

关于 react-fetch-cache-patterns

为处理大量 API 请求的 React 应用提供数据获取与缓存模式,面向优化请求流程、后端负载和故障处理的开发者,并包含依赖库及纯 React 示例。

主要功能

  1. 01八类共 48 条规则
  2. 02请求批处理与去重
  3. 03缓存策略与失效处理
  4. 04后端并发与重试控制
  5. 05预取及故障恢复模式
  6. 06可调整的代码模板

适用场景

  1. 01减少 React 数据加载瀑布
  2. 02限制信息流或列表对后端的负载
  3. 03添加缓存、预取或重试逻辑
  4. 04检查获取数据代码的韧性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill react-fetch-cache-patterns

安装后在 Claude Code 中输入/react-fetch-cache-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
assets/templates/
_template.md
carousel-data-loader.template.tsx
infinite-feed.template.tsx
prefetch-link.template.tsx
request-collapser.template.ts
use-resource-query-no-deps.template.tsx
use-resource-query.template.tsx
references/
_sections.md
cache-deterministic-keys.md
cache-normalize-shared-entities.md
cache-select-subscribed-fields.md
cache-set-stale-time.md
cache-shared-key-factory.md
cache-stale-while-revalidate.md
cache-tiered-stale-fresh.md
feed-bounded-working-set.md
feed-cursor-pagination.md
feed-image-lazy-and-sized.md
feed-multi-carousel-isolation.md
feed-split-summary-from-detail.md
feed-stable-keys-across-pages.md
feed-virtualize-long-lists.md
mutate-cancel-queries-on-mutate.md
mutate-optimistic-updates-with-rollback.md
mutate-set-data-over-invalidate.md
mutate-surgical-invalidation.md
orch-avoid-effect-chains.md
orch-batch-n-plus-one-fanout.md

详细介绍

实验性 React 数据获取与缓存最佳实践

适用于 React 应用的实现模式:获取并缓存大量 API 请求,同时避免给后端造成过大压力。共分 8 个类别,包含 48 条规则,按执行生命周期的影响排序——前面的类别会逐层影响后续所有内容。模板同时展示基于库(TanStack Query、SWR)和不依赖库(纯 React + AbortController)的实现,无论技术栈有哪些限制,都能使用这些模式。

适用场景

  • 编写或审查调用 fetch、useQuery、useSWR 或任何数据获取 Hook 的 React 组件
  • 设计列表、信息流或轮播,其中要显示的多个条目都需要获取数据
  • 排查“后端请求量过大”或“页面加载缓慢”等问题
  • 在客户端获取、路由加载器、服务端组件或 SSR 之间进行选择
  • 实现预取、重试、乐观更新或任何故障处理逻辑
  • 重构已有的数据获取代码,但其中存在瀑布式请求、没有缓存策略或没有并发限制

按优先级划分的规则类别

#类别影响前缀规则数
1请求编排CRITICALorch-7
2缓存策略CRITICALcache-7
3后端保护CRITICALprotect-7
4预取与水合HIGHprefetch-6
5故障韧性HIGHresilience-6
6信息流与轮播模式MEDIUM-HIGHfeed-7
7变更与失效MEDIUMmutate-4
8组件模式MEDIUMrender-4

快速参考

1. 请求编排(CRITICAL)
2. 缓存策略(CRITICAL)
3. 后端保护(关键)
4. 预取与水合(高)
5. 故障韧性(高)
6. 信息流与轮播模式(中高)
7. 变更与失效(中)
8. 组件模式(中)

使用方法

  1. 打开 references/_sections.md,了解类别定义和影响说明
  2. 阅读各规则文件,查看错误与正确的代码示例
  3. 如需可直接使用的脚手架,请参阅 脚手架模板
  4. AGENTS.md 导航文档(自动生成)提供了用于浏览的目录

脚手架模板

assets/templates/ 下有六个可直接改编的代码模板:

模板库依赖用途
use-resource-query.template.tsxTanStack Query标准查询 Hook,包含键工厂、重试、中止和可选的 suspense
use-resource-query-no-deps.template.tsx无(纯 React + AbortController)与上述相同的模式,无库依赖:手动实现缓存、去重、带抖动的重试、staleTime/gcTime、并发限制
carousel-data-loader.template.tsxTanStack Query + react-error-boundary单个轮播(摘要 + 由视口触发的详情)以及多轮播信息流,并隔离每个轮播的故障
infinite-feed.template.tsxTanStack Query + TanStack Virtual使用虚拟化和有界工作集的游标分页无限信息流
prefetch-link.template.tsx无悬停/意图预取链接包装器
request-collapser.template.ts无进行中的请求去重 + 并发限制工具

无库依赖方案: 如果无法将 TanStack Query / SWR / DataLoader 添加到你的打包产物中(受体积限制、宿主应用冲突或依赖禁用所限),请从 use-resource-query-no-deps.template.tsx 开始——它仅使用 React 和 Web 平台,约 250 行代码即可实现核心缓存/去重/重试/中止模式。其他依赖 TanStack 的模板可以基于此改编;只有 request-collapser 和 prefetch-link 模板开箱即用时没有任何依赖。

参考文件

文件说明
references/_sections.md类别定义、排序、影响说明
assets/templates/_template.md用于编写新规则的模板
metadata.json版本、参考资料、摘要

相关技能

  • react-optimise — 通用 React 渲染性能(本技能专注于数据获取)
  • nextjs-bundle-optimizer — Next.js 打包产物/负载优化
  • inngest-nextjs-patterns — 服务端工作流模式(补充服务端获取指南)

评论

支持 Markdown