React Operations 是一套面向 React 开发的综合技能文档,覆盖 Hooks、组件架构、状态管理、Server Components 与性能优化。文档声明其中 React 19 生态事实核验至 2026-07。
【用途】 帮助开发者在具体 React 场景中做出选型决策,包括该用哪个 Hook、采用哪种组件组合模式、状态应放在何处、组件应在服务端还是客户端渲染,以及哪些性能优化手段值得使用。
【主要能力】
- Hooks 选择决策树:按问题类型给出建议,如简单 UI 状态用 useState、复杂多子值状态用 useReducer、派生值直接计算或 useMemo、不触发重渲染的引用用 useRef、副作用按需选 useEffect/useLayoutEffect、缓存计算用 useMemo、稳定回调用 useCallback、读取共享上下文用 useContext、生成稳定 ID 用 useId、同步外部存储用 useSyncExternalStore;React 19+ 可用 use()、useFormStatus、useActionState、useOptimistic。
- 组件模式决策树:共享隐式状态用 Context 复合组件,控制渲染输出用 Render Props,横切关注点用 HOC,封装可复用有状态逻辑优先自定义 Hook,命令式控制用 forwardRef + useImperativeHandle,脱离 DOM 层级渲染用 Portal,任意插槽用 children 或具名 props,多态渲染用 as prop + TypeScript 泛型。
- 状态管理决策树:单组件用局部状态,邻近组件上提状态,少变多消费者用 Context(按更新频率拆分),高频全局客户端状态可选 Zustand、Jotai 或 Redux Toolkit,服务端数据用 TanStack Query,表单用 React Hook Form + Zod。
- React 19 速查表:列出 use()、Actions、useActionState、useFormStatus、useOptimistic、React Compiler 自动记忆化、ref 作为 prop(无需 forwardRef)、Context 直接作为 Provider 等特性及用途,并附 use() 数据获取与 useActionState 示例代码。
- Server 与 Client Components 判定:需要 useState/useReducer/useContext、useEffect/useLayoutEffect、浏览器 API、事件处理、依赖 hooks 的第三方库时使用 Client Component('use client');需要直接访问数据库/文件系统、服务端环境变量、保持大依赖不进客户端包、顶层 async/await 时使用 Server Component。文档同时说明客户端边界规则,如 'use client' 以下的导入都变为客户端 JS、Client Component 不能直接导入 Server Component、服务端数据只能以可序列化 props 传给客户端。
- 性能清单:说明 React.memo、useMemo、useCallback、React.lazy + Suspense、useTransition、useDeferredValue、虚拟列表、React Compiler 各自的适用与不适用场景(如 memo 不应用于几乎所有组件、虚拟化用于超过 100 项的列表)。
- 常见陷阱对照:包括 useEffect 中的陈旧闭包、缺失依赖、用索引作 key、水合不匹配、Context 导致的非必要重渲染、用 useEffect 处理派生状态、缺失清理函数、Strict Mode 双重调用、受控/非受控切换、依赖数组中的对象/数组、在 useEffect 中直接使用异步函数,并给出对应修复方式。
- 按需加载的参考文件:hooks-patterns.md(Hook 深入用法)、component-architecture.md(组件架构)、state-management.md(状态管理)、server-components.md(RSC 架构、Server Actions、Next.js App Router、缓存、流式、元数据)、performance.md(性能与剖析)、testing.md(RTL、user-event、MSW、renderHook、Vitest、可访问性测试)。
- 事实校验脚本:scripts/check-react-facts.py 用于防止文档事实漂移。离线模式(--offline)在 PR CI 中运行,检查文档中是否仍列出每个编目包与 React 19 门槛,退出码 0 表示一致、10 表示漂移;在线模式(--live)在每周新鲜度任务中运行,检查文档记录的某个主版本是否落后于 npm 最新 dist-tag,退出码 10 表示有主版本前进、7 表示 npm 不可达。规范事实清单存放在 assets/react-facts.json。
【适用场景】 React 应用开发中的 Hooks 选型、组件组合方式选择、状态放置与状态库选择、SSR/RSC 与客户端组件边界判断、性能优化决策,以及排查常见的重渲染、闭包、水合等问题。
【配套技能】 typescript-ops(React props 的泛型、状态机的可辨识联合、工具类型)、testing-ops(测试策略、mock 模式、CI 集成)、tailwind-ops(CSS-in-JS 替代方案、Tailwind 响应式设计)、javascript-ops(异步模式、Promise、生成器、模块系统)。
【限制】 本次资料未提供该技能的安装方式、具体运行步骤、收费与价格信息、支持平台信息,暂未提供相关内容。