npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hooks-react-using

v1.1.6

Published

react-hooks

Downloads

2

Readme

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 可以用来禁止页面滚动