自定义 Hook 先问三句:状态归谁、副作用何时清、能不能单测
写自定义 Hook 前先对齐三件事:它封装的状态谁拥有、副作用在卸载时怎么清、离开组件树后还能不能单独测。
常见拆法:把「订阅 / 定时器 / 事件」放进 useEffect 并返回清理函数;把纯计算留在普通函数或 useMemo,别为了「像 Hook」硬套。命名用 useXxx,但不要在条件分支里调用 Hook。
自测最小集:挂载一次、依赖变更一次、卸载一次,看监听是否泄漏。文档和注释写清「这个 Hook 假设调用方已经……」,比堆示例更有用。
说明:以下为通用写法整理,具体 API 以你项目使用的 React 版本文档为准;核实日期 2026-10-24。
来源
[1] React 官方文档「Reusing Logic with Custom Hooks」通用原则整理,2026年10月24日。
#React #Hooks #自定义Hook #前端 #教程