mcpField
R
react

react

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

关于 react

面向 AI Agent 的 React 19 实践指南,涵盖组件开发与结构化代码库审查,包含九类共 49 条规则。

主要功能

  1. 01九类共 49 条规则
  2. 02React 19 模式与 API
  3. 03模式识别示例
  4. 04结构化多文件审查流程
  5. 05代码库卫生检查

适用场景

  1. 01编写或重构 React 组件
  2. 02将项目从 React 18 迁移到 React 19
  3. 03审查 React 仓库中的性能与设计问题

安装

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

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

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

包含的文件

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

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_review-algorithm.md
_sections.md
conc-activity-component.md
conc-automatic-batching.md
conc-concurrent-safe.md
conc-suspense-fallback.md
conc-use-deferred-value.md
conc-use-transition.md
cross-boundary-coherence.md
cross-component-consolidation.md
cross-dead-code.md
cross-extract-shared-logic.md
cross-prop-shape-drift.md
data-cache-deduplication.md
data-document-metadata.md
data-error-boundaries.md
data-parallel-fetching.md
data-resource-hints.md
data-suspense-data-fetching.md
data-use-hook.md
effect-avoid-unnecessary.md
effect-cleanup.md
effect-object-dependencies.md
effect-use-effect-event.md
effect-use-sync-external-store.md
form-actions.md
form-use-action-state.md

详细介绍

React 19 最佳实践

面向 AI Agent 的 React 19/19.2 最佳实践综合指南。包含 9 个类别中的 49 条规则,按影响从关键(并发渲染、服务端组件)到贯穿整个代码库的代码卫生(去重、死代码、边界一致性)排序。涵盖 React 19 的主要更新:ref 作为常规属性(弃用 forwardRef)、原生文档元数据、资源预加载 API、useActionState、useOptimistic、use() Hook,以及作为 Provider 的 <Context>。

规则文件描述的是模式形态(而非 API 名称),并以 “需要识别的形态” 一节开篇,列出同一种问题可能呈现的 2–4 种语法伪装。精选高价值规则(其伪装形态在实际代码库中最常见,包括表单 Action、ref 作为属性、派生状态、Context、use() Hook、useCallback/memo 配对)还包含一组具体的 “伪装案例” 错误/正确示例,用于教你识别 grep 难以发现的模式。

何时应用

  • 编写新的 React 组件或重构现有组件
  • 审计或现代化一个目录、PR 或整个代码仓库(所需流程见 references/_review-algorithm.md)
  • 从 React 18 迁移到 React 19(forwardRef → ref 作为属性,<Context.Provider> → <Context>,useFormState → useActionState)
  • 优化重新渲染性能或包体积
  • 使用并发特性(useTransition、useDeferredValue、Activity)
  • 设置服务端组件或服务端/客户端边界
  • 实现表单 Action、乐观更新或数据获取
  • 配置 React Compiler 以实现自动记忆化
  • 检查 React 代码中的常见反模式或过时的 React 18 习惯用法
  • 查找单文件规则无法发现的代码库级问题:跨文件重复逻辑、近似重复的组件、死代码、不需要客户端的 'use client' 文件、属性形状漂移(见类别 9)

如何检查或重构代码库

当用户要求检查、重构、现代化或审计 React 代码(单个文件或整个代码仓库)时,请遵循 references/_review-algorithm.md。不要自行发挥。

该文档规定的四项不可妥协要求:

  1. 两种模式——绝不拒绝对整个代码仓库进行审计。 选择 模式 A(范围有限,≤约 20 个文件)或 模式 B(整个目录树:清点 + 定向扫描 + 完整类别 9)。算法会告诉你如何处理“审计我的代码库”这类请求,而不必将 800 个文件全部塞进上下文。
  2. 依靠判断,而非 grep。 每条规则定义的是一种模式形态,而非语法标记。开始扫描前,先阅读每条规则中的需要识别的形态一节——grep 能找到容易发现的违规,却会漏掉高价值问题(作者为绕开 forwardRef 而手动层层传递的回调 ref;用 onSubmit 完成了本该由 useActionState 处理的工作;形似派生状态的 useState+useEffect;隐藏了获取数据流程的自定义 Hook)。grep 是触发器,绝不是判定依据。
  3. 按类别扫描,而非按文件扫描——并设置强制检查机制。 按优先级(CRITICAL → … → CROSS-CUTTING)一次扫描一个类别,并覆盖范围内的所有文件。算法要求提供范围声明、各类别进度行,以及最终的覆盖表(category × file,单元格 ∈ {clean, N findings, n/a})。输出中缺少某个类别会立即显现。
  4. 代码库级问题由类别 9 发现。 单文件规则无法判断“这两个组件应当合并”或“这个 Hook 已经没有用途”。类别 9(代码卫生)会在最后扫描完整文件清单,并提出删除、去重、复用或合并方面的发现。

单文件的临时问题(“这个 Hook 可以吗?”)可以直接查看相关规则。该算法适用于多文件和整个代码仓库的情况。

规则类别

#类别影响规则关键主题
1并发渲染CRITICAL6useTransition、useDeferredValue、Activity、批处理、渲染纯度
2服务端组件CRITICAL6RSC 边界、数据获取、流式传输、可序列化的属性
3Actions 与表单HIGH5表单 actions、声明式表单状态、useOptimistic、服务端验证
4数据获取HIGH7use() hook、cache()、Suspense、文档元数据、资源提示
5状态管理MEDIUM-HIGH5派生值、上下文拆分、函数式更新、reducer
6记忆化与性能MEDIUM5React Compiler、useMemo、useCallback、React.memo
7Effects 与事件MEDIUM5useEffectEvent、清理、外部存储、派生状态反模式
8组件模式LOW-MEDIUM5将 ref 作为属性、组合、受控与非受控、key 重置
9代码库整洁CROSS-CUTTING5去重、整合、死代码、边界一致性、属性形态漂移

快速参考

关键模式——优先掌握这些:

  • 在服务端组件中获取数据,而非客户端组件
  • 尽可能将 'use client' 边界下移
  • 对开销较大的非阻塞更新使用 startTransition
  • 使用 <Activity> 在切换标签页或页面时保留状态

React 19 现代惯用写法(不要生成 React 18 模式):

  • function C({ ref, ...props }) — 不要使用 forwardRef 包装
  • <MyContext value={v}> — 不要使用 <MyContext.Provider>
  • useActionState — 不要使用 useFormState
  • useRef<T>(null) — 始终传入初始值
  • 内联渲染 <title>、<meta>、<link> — 不要使用 react-helmet
  • 使用来自 react-dom 的 preload/preconnect — 不要手动渲染 <link rel="preload">

常见的单文件错误——避免这些反模式:

  • 在客户端组件中为 use() 创建 promise(会导致无限循环)
  • 记忆化所有内容(改用 React Compiler v1.0+)
  • 使用 effects 处理派生状态、变更、通知父组件或应用初始化
  • 在组件树中过早放置 'use client'

代码库层面的模式——在第 9 类检查中发现这些问题:

  • 没有任何导入方的组件、hooks 或工具函数——删除
  • 2 个或更多文件具有相同的 effect/状态形态——提取为共享 hook
  • 2 个或更多结构相同、但标签或图标存在差异的组件——使用变体或组合进行整合
  • hook 用法无需客户端执行的 'use client' 文件——降级为服务端组件(或拆分为服务端父组件 + 客户端岛)
  • 不同组件中用不同名称表示的同一概念属性——统一为规范名称

目录

  1. 并发渲染 — CRITICAL
  2. 服务端组件 — CRITICAL
  3. Actions 与表单 — HIGH
  4. 数据获取 — HIGH
  5. 状态管理 — MEDIUM-HIGH
  6. 记忆化与性能 — MEDIUM
  7. Effects 与事件 — MEDIUM
  8. 组件模式 — LOW-MEDIUM
  9. 代码库整洁度 — CROSS-CUTTING(涉及多个文件的发现;整仓库审计必需)

参考资料

  1. https://react.dev
  2. https://react.dev/blog/2024/04/25/react-19-upgrade-guide
  3. https://react.dev/blog/2024/12/05/react-19
  4. https://react.dev/blog/2025/10/01/react-19-2
  5. https://react.dev/blog/2025/10/07/react-compiler-1
  6. https://react.dev/learn/you-might-not-need-an-effect
  7. https://github.com/facebook/react

相关技能

  • 关于 Next.js 16 App Router,请参阅 nextjs-16-app-router 技能
  • 关于客户端表单处理,请参阅 react-hook-form 技能
  • 关于使用 TanStack Query 缓存数据,请参阅 tanstack-query 技能

评论

支持 Markdown