ht_hooks
Version:
ht React 业务 Hooks
176 lines (175 loc) • 5.3 kB
JSON
{
"functions": [
{
"name": "useBoolean"
},
{
"name": "useClickAway",
"description": "监听目标元素外的点击事件。"
},
{
"name": "useCookieState",
"description": "一个将状态存储在 Cookie 中的 Hook 。"
},
{
"name": "useCreation"
},
{
"name": "useDebounce",
"description": "用来处理防抖值的 Hook。"
},
{
"name": "useDebounceFn",
"description": "用来处理防抖函数的 Hook。"
},
{
"name": "useDelete"
},
{
"name": "useDocumentVisibility",
"description": "监听页面是否可见,参考 [visibilityState API](https://developer.mozilla.org/docs/Web/API/Document/visibilityState)"
},
{
"name": "useDrag"
},
{
"name": "useDrop",
"description": "& useDrag"
},
{
"name": "useEventListener",
"description": "优雅的使用 addEventListener。"
},
{
"name": "useEventTarget",
"description": "常见表单控件(通过 e.target.value 获取表单值) 的 onChange 跟 value 逻辑封装,支持自定义值转换和重置功能。"
},
{
"name": "useFullscreen",
"description": "管理 DOM 全屏的 Hook。"
},
{
"name": "useGetState",
"description": "给 `React.useState` 增加了一个 getter 方法,以获取当前最新值。"
},
{
"name": "useHover",
"description": "监听 DOM 元素是否有鼠标悬停。"
},
{
"name": "useInViewport",
"description": "观察元素是否在可见区域,以及元素可见比例。更多信息参考 [Intersection Observer API](https://developer.mozilla.org/zh-CN/docs/Web/API/Intersection_Observer_API)。"
},
{
"name": "useKeyPress",
"description": "监听键盘按键,支持组合键,支持按键别名。"
},
{
"name": "useLatest",
"description": "返回当前最新值的 Hook,可以避免闭包问题。"
},
{
"name": "useLocalStorageState",
"description": "将状态存储在 localStorage 中的 Hook 。"
},
{
"name": "useLongPress",
"description": "监听目标元素的长按事件。"
},
{
"name": "useMap",
"description": "管理 Map 类型状态的 Hook。"
},
{
"name": "useMemoizedFn",
"description": "持久化 function 的 Hook,理论上,可以使用 useMemoizedFn 完全代替 useCallback。"
},
{
"name": "useMount",
"description": "只在组件初始化时执行的 Hook。"
},
{
"name": "useMouse",
"description": "监听鼠标位置"
},
{
"name": "useMutationObserver",
"description": "一个监听指定的 DOM 树发生变化的 Hook,参考 [MutationObserver](https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver)"
},
{
"name": "usePrevious",
"description": "保存上一次状态的 Hook。"
},
{
"name": "useRafState",
"description": "只在 [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) callback 时更新 state,一般用于性能优化。"
},
{
"name": "useRequest"
},
{
"name": "useResetState",
"description": "提供重置 state 方法的 Hooks,用法与 `React.useState` 基本一致。"
},
{
"name": "useResponsive",
"description": "获取响应式信息。"
},
{
"name": "useSafeState",
"description": "用法与 `React.useState` 完全一样,但是在组件卸载后异步回调内的 `setState` 不再执行,避免因组件卸载后更新状态而导致的内存泄漏。"
},
{
"name": "useScroll",
"description": "监听元素的滚动位置。"
},
{
"name": "useSessionStorageState",
"description": "将状态存储在 sessionStorage 中的 Hook。"
},
{
"name": "useSet",
"description": "管理 Set 类型状态的 Hook。"
},
{
"name": "useSetState",
"description": "管理 object 类型 state 的 Hooks,用法与 class 组件的 `this.setState` 基本一致。"
},
{
"name": "useSize",
"description": "监听 DOM 节点尺寸变化的 Hook。"
},
{
"name": "useThrottle",
"description": "用来处理节流值的 Hook。"
},
{
"name": "useThrottleFn",
"description": "用来处理函数节流的 Hook。"
},
{
"name": "useTitle",
"description": "用于设置页面标题。"
},
{
"name": "useToggle",
"description": "用于在两个状态值间切换的 Hook。"
},
{
"name": "useUnmount",
"description": "在组件卸载(unmount)时执行的 Hook。"
},
{
"name": "useUnmountedRef",
"description": "获取当前组件是否已经卸载的 Hook。"
},
{
"name": "useUpdate",
"description": "useUpdate 会返回一个函数,调用该函数会强制组件重新渲染。"
},
{
"name": "useUpdateEffect",
"description": "`useUpdateEffect` 用法等同于 `useEffect`,但是会忽略首次执行,只在依赖更新时执行。"
}
]
}