用途:该技能用于编写或重构 React 函数组件,实现 Hooks(useState、useEffect、useMemo、useCallback),管理状态与副作用,进行性能优化和组件组合。不适用于非 React 的 JS、React Native、Redux 及服务端框架,这些应改用对应技能。
主要能力与关键模式:要求使用带 Hooks 的函数组件,不使用类组件;useEffect 必须声明全部依赖以避免闭包过期;列表使用唯一 ID 作为 key,不用数组索引;禁止条件式调用 Hooks,Hooks 置于顶层。
决策指引:简单状态(少于 3 个值)用 useState;复杂关联状态(4 个以上)用 useReducer;副作用用 useEffect 并正确声明依赖;数据请求用 useEffect 配合 AbortController;性能问题先用 React DevTools 分析,昂贵计算用 useMemo,传给已记忆子组件的回调用 useCallback;跨组件共享状态用 Context API 或状态提升;表单校验用受控组件;大列表(1000+)用虚拟化。
边界情况:useEffect 清理函数用于订阅、定时器、监听器;useRef 存不触发重渲染的值,useState 存影响 UI 的值;异步代码中可用 flushSync 立即更新(少见);children 用 React.ReactNode 类型。架构模式(Clean Architecture/SOLID)仅在 AGENTS.md 指定、代码库使用相应目录或用户要求时应用。
检查清单:函数组件与 Hooks、useEffect 依赖完整、列表 key 稳定、无条件 Hooks、副作用有清理、useMemo/useCallback 按需使用、表单受控、Context 按更新频率拆分。参考资料包括 hooks-advanced、use-effect-patterns、performance、context-patterns、forms-state,以及 react.dev 官方文档。