用途
React Hooks Complete 是一个完整的 React Hooks 参考系统,用于指导 React Hooks 的实现。根据资料,它会在以下情况被主动激活:useState 与 useReducer 模式、useEffect 与生命周期、useRef 用于 DOM 等场景。
该技能适用于 React Hooks 实现,包括:为用例选择合适的钩子;使用 useState/useReducer 管理组件状态;使用 useEffect 处理副作用与清理;构建自定义可复用钩子;使用 useMemo 和 useCallback 进行优化;使用 React 19 并发特性。资料同时指出,若涉及状态管理库,应参考 react-state-management。
主要能力
状态钩子
- useState:本地状态,支持惰性初始化、对象状态、数组状态(添加、删除、更新项)。
- useReducer:复杂状态,包含 State 与 Action 类型定义、reducer 函数及用法示例。
- useReducer with Immer:结合 immer 的 produce 处理 Todo 列表的添加、切换、删除。
副作用钩子
- useEffect:副作用处理,示例包含异步获取用户数据、取消标志与清理函数。
- useLayoutEffect:在 DOM 变更后、绘制前同步运行,示例为 Tooltip 高度测量。
- useInsertionEffect:面向 CSS-in-JS 库作者,示例动态插入与移除 style 标签。
上下文钩子
- useContext:消费上下文,示例包含 AuthContext 类型定义、AuthProvider 组件、useAuth 自定义钩子及用法。
引用钩子
- useRef:DOM 引用与可变值(不触发重新渲染),示例包含输入框聚焦与计时器。
- useImperativeHandle:配合 forwardRef 暴露命令式句柄,示例为 VideoPlayer 的 play、pause、seek。
性能钩子与 React 19 钩子
资料说明,useMemo、useCallback、useTransition、useDeferredValue 以及 React 19 时代的 useActionState、useOptimistic、useFormStatus 等钩子的详细内容位于 references/performance-and-react-19-hooks.md。在优化渲染、处理过渡/延迟值或接入 React 19 表单与异步资源时加载该参考。
自定义钩子
提供 useLocalStorage、useDebounce、useFetch、useMediaQuery 的完整实现与用法示例。资料还提到 references/custom-hooks-library.md 包含可复用自定义钩子的完整库。
Hooks 规则
- 只在顶层调用钩子,不要在循环、条件或嵌套函数中调用。
- 只从 React 函数中调用钩子,即组件或自定义钩子。
- 自定义钩子名称以 "use" 开头,以便启用 lint 检查。 资料给出反例(条件调用钩子)与正例(无条件调用钩子)。
使用方式
资料以快速参考表列出各钩子的用途与示例,包括 useState、useReducer、useEffect、useRef、useContext、useMemo、useCallback,以及 React 19 的 useTransition、useDeferredValue、useActionState、useOptimistic、useFormStatus。正文按状态钩子、副作用钩子、上下文钩子、引用钩子、性能与 React 19 钩子、自定义钩子、Hooks 规则等章节展开,并附有可直接参考的代码示例。
适用场景
- 为具体用例选择合适的 React 钩子。
- 使用 useState/useReducer 管理组件状态。
- 使用 useEffect 处理副作用与清理。
- 构建自定义可复用钩子。
- 使用 useMemo 和 useCallback 优化性能。
- 使用 React 19 并发特性。
限制
资料未提供该技能的安装命令、收费或价格信息、支持平台、效果数据等,这些内容暂未提供。资料明确将状态管理库相关内容指向 react-state-management,将性能与 React 19 钩子的详细覆盖指向 references/performance-and-react-19-hooks.md,将生产级自定义钩子实现指向 references/custom-hooks-library.md。