{
  "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`，但是会忽略首次执行，只在依赖更新时执行。"
    }
  ]
}
