1.1.6 • Published 11 months ago

hooks-react-using v1.1.6

Weekly downloads
-
License
ISC
Repository
-
Last release
11 months ago

Features

  • 封装了常用React Hooks的库
  • 更轻松地管理组件中的状态和逻辑
  • 支持 TypeScript

Install

by using npm:

npm install hooks-react-using --save

by using yarn:

yarn add hooks-react-using

by using pnpm:

pnpm install hooks-react-using --save

Basic usage

import { useToggle, useCountDown, useClickOutside } from 'hooks-react-using';

API Hooks

Lifecycles

  • useMount useMount 只在组件初始化时执行。
  • useUnmount useUnmount 在组件卸载时执行的。

State

  • useSetState useSetState 管理 object 类型 state
  • useDebounce useDebounce 控制值在多次更新的防抖。
  • useThrottle useThrottle 控制值在多次更新的节流。
  • useLocalStorageState useLocalStorageState 将状态持久化到 localStorage 本地存储中
  • useSessionStorageState useSessionStorageState 将状态持久化到 sessionStorage 本地存储中
  • usePrevious usePrevious 用来获取组件上一次渲染时某个状态或属性的值
  • useBoolean useBoolean 管理一个布尔类型的状态值
  • useArray useArray 管理一个Array类型的状态
  • useToggle useToggle 可用于管理布尔值状态,还可以用于管理任何类型的状态的真假值
  • useCountDown useCountDown 可用于实现倒计时
  • useRafCountDown useRafCountDown 可用于实现倒计时,基于 requestAnimationFrame 实现
  • useLatest 获取一个值的最新引用
  • useStableState useStableState 与 useState 类似,在 state 是最新值并且 setState 和最新值相等时会阻止 setState
  • useForceUpdate useForceUpdate 强制组件重新渲染
  • useMap useMap 管理 new Map() 创建的映射对象的状态
  • useWeakMap useMap 管理 new WeakMap() 创建的映射对象的状态,弱引用版本的 Map
  • useSet useSet 管理 new Set() 集合类型的数据结构
  • useWeakSet useWeakSet 管理 new WeakSet() 集合类型的数据结构,弱引用版本的 Set
  • useQueue useQueue 简单的队列,用于管理队列数据结构
  • useTaskQueue useTaskQueue 任务队列,用于管理队列数据结构,主要处理异步任务的队列

Effect

  • useWatchEffect useWatchEffect 与 useEffect 类似,可以观察哪个依赖变化触发了 useEffect 的执行,观察依赖变更的新值和旧值,并且可以取消观察。
  • useWatchLayoutEffect useWatchLayoutEffect 与 useLayoutEffect 类似,可以观察哪个依赖变化触发了 useEffect 的执行,观察依赖变更的新值和旧值,并且可以取消观察。
  • useDeepWatchEffect useDeepWatchEffect 与 useEffect 类似,可以深度观察哪个依赖变化触发了 useEffect 的执行,观察依赖变更的新值和旧值,并且可以取消观察。
  • useDeepWatchLayoutEffect useDeepWatchLayoutEffect 与 useLayoutEffect 类似,可以深度观察哪个依赖变化触发了 useEffect 的执行,观察依赖变更的新值和旧值,并且可以取消观察。
  • useUpdateEffect useUpdateEffect 与 useEffect 类似,但只在依赖项更新时运行,不包括初次渲染
  • useUpdateLayoutEffect useUpdateLayoutEffect 与 useLayoutEffect 类似,但只在依赖项更新时运行,不包括初次渲染
  • useAsyncEffect useAsyncEffect 与 useEffect 类似,可以使用异步函数
  • useDeepCompareEffect useDeepCompareEffect 与 useEffect 类似,用于在函数组件中实现具有深比较
  • useDeepCompareLayoutEffect useDeepCompareLayoutEffect 与 useLayoutEffect 类似,用于在函数组件中实现具有深比较
  • useOnceEffect useOnceEffect 与 useEffect 类似,但只在依赖项更新时执行一次,后续依赖变更不再执行
  • useOnceUpdateEffect useOnceUpdateEffect 与 useEffect 类似,但是不包括初次渲染,并且只在依赖项更新时执行一次,后续依赖变更不再执行
  • useOnceLayoutEffect useOnceLayoutEffect 与 useLayoutEffect 类似,但只在依赖项更新时执行一次,后续依赖变更不再执行
  • useOnceUpdateLayoutEffect useOnceUpdateLayoutEffect 与 useLayoutEffect 类似,但是不包括初次渲染,并且只在依赖项更新时执行一次,后续依赖变更不再执行
  • useDebounceFn useDebounceFn 控制函数在多次触发的防抖。
  • useDebounceEffect useDebounceEffect 可以有效地控制 useEffect 防抖。
  • useThrottleFn useThrottleFn 限制函数的执行频率,节流。
  • useThrottleEffect useThrottleEffect 可以有效地控制 useEffect 节流。
  • useTimeoutFn useTimeoutFn 在指定的时间后执行一个函数
  • useRafTimeoutFn useRafTimeoutFn 在指定的时间后执行一个函数,基于 requestAnimationFrame 实现
  • useIntervalFn useIntervalFn 定时器执行一个函数
  • useRafIntervalFn useRafIntervalFn 定时器执行一个函数,基于 requestAnimationFrame 实现

Elements

  • useClickOutside useClickOutside 监听点击目标元素外部时执行某个回调函数,点击事件也可以自定义,可以是其它的鼠标事件
  • useElementSize useElementSize 可以用于获取DOM元素的尺寸信息
  • useScroll useScroll 用于获取页面滚动位置的信息
  • useHover useHover 鼠标是否正在悬停目标元素上
  • useTitle useTitle 用来动态修改网页的标题
  • useDocumentVisibility useDocumentVisibility 检测当前页面是否处于活动状态(即当前窗口的可见性)
  • useEventListener useEventListener 用于封装原生的 addEventListener 方法,使得在函数式组件中添加事件监听器更加方便
  • useLongPress useLongPress 用于在长按某个元素时触发回调函数
  • useFocusWithin useFocusWithin 监听元素的焦点变化
  • useScrollLock useScrollLock 可以用来禁止页面滚动
1.1.6

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago