Hooks API

Resin Hooks 提供了一系列实用的 React Hooks,帮助开发者更高效地构建 React 应用。

目录

状态管理

存储与缓存

  • useStorage - 封装 localStorage / sessionStorage,支持过期时间和跨标签页同步

性能优化

数据与导出

  • useExcelExport - Excel 导出,支持单级/多级表头、表头映射、同步/异步数据源

快速开始

安装

1pnpm add @resin-hooks/core
2# 或
3npm install @resin-hooks/core
4# 或
5yarn add @resin-hooks/core

使用

1import {
2  useBoolean,
3  useLatest,
4  useStorage,
5  useThrottle,
6  useDebounce,
7  useVirtualList,
8  useExcelExport,
9} from '@resin-hooks/core';
10
11function App() {
12  // 使用 useBoolean
13  const [value, { toggle }] = useBoolean(false);
14
15  // 使用 useLatest
16  const latestValue = useLatest(value);
17
18  // 使用 useStorage(localStorage 持久化)
19  const [token, setToken, removeToken] = useStorage<string>({
20    key: 'auth_token',
21    type: 'local',
22    defaultValue: '',
23  });
24
25  // 使用 useThrottle
26  const { throttleFn, cancel } = useThrottle((val) => console.log(val), {
27    interval: 500,
28  });
29
30  // 使用 useDebounce
31  const { debounceFn } = useDebounce((val) => fetchSearch(val), {
32    delay: 300,
33  });
34
35  // 使用 useVirtualList
36  const { list, containerProps, totalHeight } = useVirtualList(data, {
37    containerHeight: 400,
38    itemHeight: 50,
39  });
40
41  // 使用 useExcelExport
42  const { exportExcel, progress, loading } = useExcelExport({
43    fileName: 'data.xlsx',
44    headersMap: { id: 'ID', name: '姓名' },
45  });
46
47  return <div>...</div>;
48}

Hooks 列表

useBoolean

用于管理布尔值状态的 Hook,提供便捷的操作方法。

特性:

  • 简洁的 API
  • 提供 setTruesetFalsetoggleset 等方法
  • 类型安全

查看完整文档 →

useLatest

用于保存最新的值引用,解决闭包中访问到旧值的问题。

特性:

  • 解决闭包陷阱
  • 自动更新 ref.current
  • 不影响渲染性能

查看完整文档 →

useThrottle

用于限制函数执行频率的 Hook,支持 leading、trailing 配置。

特性:

  • 可配置 interval、leading、trailing
  • 支持 resultCallback 获取执行结果
  • 提供 cancel 取消未执行的 trailing
  • 组件卸载时自动清理定时器

查看完整文档 →

useDebounce

防抖 Hook,在指定延迟内多次调用时只会执行最后一次。

特性:

  • 可配置 delay、immediate
  • 支持 resultCallback 获取执行结果
  • 提供 cancel 取消未执行的调用
  • 适用于搜索输入、表单校验等场景

查看完整文档 →

useVirtualList

虚拟列表 Hook,用于高效渲染大量数据列表。

特性:

  • 只渲染可见区域的项目
  • 支持固定高度和动态高度
  • 提供滚动控制方法
  • 性能优化,支持万级数据渲染

查看完整文档 →

useExcelExport

前端 Excel 导出 Hook,支持单级表头、多级表头、表头映射、部分列导出。

特性:

  • 单级表头、多级表头(headersMap、headers)
  • 部分列导出(colums)
  • 支持数组或异步数据源
  • 进度、loading、errorInfo 便于 UI 展示

查看完整文档 →

贡献

欢迎贡献新的 Hooks 或改进现有 Hooks!

许可证

ISC