跳到正文
本页内容

介绍

React 已经负责状态和 Effect。Better Hooks 接手周边那些看似不大、却很容易留下问题的工作:取消定时器、移除监听器、处理服务端无法得知的浏览器状态,以及丢弃已经过期的异步结果。

一个 Hook 只做一件事

每个入口都保持小而明确。切换状态用 useToggle,等待输入稳定用 useDebounce,读取联网状态用 useOnline,响应用户复制操作用 useCopyToClipboard。剩下的组件代码还是普通 React。

Hook 会替你处理的事

  • 仅仅导入模块,不会启动浏览器任务。
  • 输入变化或组件卸载时,定时器、监听器、订阅和待处理任务都会被清理。
  • 对于有此约定的 Hook,长生命周期回调会读到最近一次已经提交的值。
  • 每个公开 Hook 都有带类型的独立入口,也可以从根入口导入。

从一个小功能开始

跟着开始使用写一个客户端组件,再到 Hook 索引按实际需求搜索。组件需要服务端渲染时,使用浏览器状态前先看一遍 SSR 与 RSC

它不负责什么

Better Hooks 是无样式的工具库,不提供 UI 组件、请求缓存或状态容器,也不会给 React 已经好用的 API 换个名字再包装一次。