React Hook Builder 是一个用于构建自定义 React Hook 的技能,目标是产出符合最佳实践与 TypeScript 模式、可用于生产环境的 Hook。
用途 它用于在 React 项目中封装可复用的逻辑,覆盖数据获取、表单、认证、本地存储、防抖等常见模式。当用户提出相关需求时,可借助该技能生成对应的自定义 Hook。
核心工作流
- 识别模式:确定需要封装什么逻辑。
- 设计 API:定义输入、输出与选项。
- 添加 TypeScript 类型:使用泛型实现完整类型安全。
- 处理边界情况:加载、错误、清理。
- 优化性能:在需要处使用记忆化。
- 编写测试:覆盖所有状态与场景。
命名约定 Hook 始终以 “use” 为前缀,例如 useLocalStorage、useDebounce、useFetch 为正确写法;localStorageHook、fetchData 为错误写法。
主要能力与示例 数据获取类:
- useFetch:接收 url 与选项(immediate、onSuccess、onError),返回 data、error、isLoading、isError、isSuccess、refetch。内部使用 AbortController 取消上一次请求,忽略 AbortError,并在卸载时中止请求。
- useMutation:接收 mutationFn 与选项(onSuccess、onError、onSettled),返回 data、error、isLoading、isError、isSuccess、mutate、reset。
表单类:
- useForm:接收 initialValues、validate、onSubmit,返回 values、errors、touched、isSubmitting、isValid 以及 handleChange、handleBlur、handleSubmit、setFieldValue、setFieldError、reset。支持字段级校验、失焦校验、提交时全量校验,并在变更时清除对应错误。
存储类:
- useLocalStorage:接收 key 与 initialValue,返回 [值, 设置函数, 移除函数]。支持函数式更新、跨标签页同步(通过 storage 事件),并在读写异常时回退到初始值。
- useSessionStorage:与 useLocalStorage 模式相同,但使用 sessionStorage,返回 [值, 设置函数]。
工具类:
- useDebounce:接收 value 与 delay,返回防抖后的值。
- useDebouncedCallback:接收 callback 与 delay,返回防抖后的回调,内部通过 ref 保持最新回调并在卸载时清理定时器。
- useThrottle:接收 value 与 interval,返回节流后的值。
使用方式 每个 Hook 以独立文件形式给出(如 hooks/useFetch.ts),包含完整的 TypeScript 类型定义与实现代码,并附带用法示例(如 UserProfile、CreateUser、LoginForm、Settings、Search 等组件)。开发者可直接将代码放入项目对应目录并按示例调用。
适用场景 适用于 React + TypeScript 项目中需要封装数据请求、表单状态与校验、浏览器存储、输入防抖节流等通用逻辑的场景,尤其适合希望统一 Hook 命名规范、保证类型安全并覆盖加载/错误/清理等边界情况的团队。
限制 资料未提供该技能的安装方式、收费与价格、支持平台、运行环境要求、测试框架或具体效果说明,这些信息暂未提供。