UG666

UG666 UI

React Hooks

Hooks 工具函数

Hooks 提供常用工具函数。本页展示防抖、缓存、复制、分页和表单等使用方式。

导入方式

从 @ug666/ui-react 导入需要的 hooks,并和页面组件组合使用。

tsx
import { useDebounce, useLocalStorage, useMediaQuery, useClickOutside, useCopyToClipboard, useToggle, usePagination, useForm } from '@ug666/ui-react'

常用场景

每个示例都可以直接用于真实页面。

useDebounce

延迟处理搜索关键字,减少频繁请求。

原始值: / 防抖值:

useLocalStorage

将用户偏好持久化到浏览器。

useMediaQuery

根据断点或系统偏好渲染不同内容。

当前是否桌面宽度:检测中

useClickOutside

点击卡片外部自动关闭说明面板。

点我外部任意区域即可关闭当前面板。

useCopyToClipboard

复制安装命令并给出短暂反馈。

useToggle

轻松切换布尔值状态。

usePagination

生成分页状态与切片索引。

当前页:2 / 8

当前切片索引:6 - 12

useForm

管理表单值、脏状态与错误信息。

isDirty: false · errors: {}

使用方式

在 React 组件函数里调用 Hook,把返回值交给页面组件使用。

这些 Hooks 无需额外依赖,和 UGInput、UGButton、UGSwitch 等组件搭配使用。

代码示例

下面片段展示多个 hooks 的组合使用。

tsx
import { useDebounce, useLocalStorage } from '@ug666/ui-react'

const debouncedKeyword = useDebounce(keyword, 300)
const [theme, setTheme] = useLocalStorage('theme', 'light')

API

属性类型默认值说明
useDebounce(value, delay)hookdelay=300返回延迟更新后的值。
useLocalStorage(key, initialValue)hook同步 localStorage 与 React state。
useMediaQuery(query)hook监听媒体查询结果。
useClickOutside(ref, handler)hook点击元素外部时执行回调。
useCopyToClipboard()hook复制文本并返回 copied 状态。
useToggle(initial)hookfalse管理布尔切换。
usePagination(options)hookpageSize=10管理页码、边界和切片索引。
useForm(initialValues)hook管理表单值、错误与脏状态。