react-use

Collection of React Hooks

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
react-use
17.5.03 months ago6 years agoMinified + gzip package size for react-use in KB

Readme

<br/>
<br/>
👍
<br />
react-use
<br />
<br />
<br />
<br />
<br />
<br />
<a href="https://www.npmjs.com/package/react-use">
   <img src="https://img.shields.io/npm/v/react-use.svg" alt="npm package" />
</a>
<a href="https://circleci.com/gh/streamich/react-use">
  <img src="https://img.shields.io/circleci/project/github/streamich/react-use/master.svg" alt="CircleCI master" />
</a>
<a href="https://www.npmjs.com/package/react-use">
  <img src="https://img.shields.io/npm/dm/react-use.svg" alt="npm downloads" />
</a>
<a href="http://streamich.github.io/react-use">
  <img src="https://img.shields.io/badge/demos-🚀-yellow.svg" alt="demos" />
</a>
<br />
Collection of essential <a href="https://reactjs.org/docs/hooks-intro.html">React Hooks</a>.</em>
<em>Port of</em> <a href="https://github.com/streamich/libreact"><code>libreact</code></a>.
<br />
Translations: <a href="https://github.com/zenghongtu/react-use-chinese/blob/master/README.md">🇨🇳 汉语</a>




npm i react-use






- useBattery — tracks device battery state. !img-demo - useGeolocation — tracks geo location state of user's device. !img-demo - useHover and useHoverDirty — tracks mouse hover state of some element. !img-demo - useHash — tracks location hash value. !img-demo - useIdle — tracks whether user is being inactive. - useIntersection — tracks an HTML element's intersection. !img-demo - useKey, useKeyPress, useKeyboardJs, and useKeyPressEvent — track keys. !img-demo - useLocation and useSearchParam — tracks page navigation bar location state. - useLongPress — tracks long press gesture of some element. - useMedia — tracks state of a CSS media query. !img-demo - useMediaDevices — tracks state of connected hardware devices. - useMotion — tracks state of device's motion sensor. - useMouse and useMouseHovered — tracks state of mouse position. !img-demo - useMouseWheel — tracks deltaY of scrolled mouse wheel. !img-demo - useNetworkState — tracks the state of browser's network connection. !img-demo - useOrientation — tracks state of device's screen orientation. - usePageLeave — triggers when mouse leaves page boundaries. - useScratch — tracks mouse click-and-scrub state. - useScroll — tracks an HTML element's scroll position. !img-demo - useScrolling — tracks whether HTML element is scrolling. - useStartTyping — detects when user starts typing. - useWindowScroll — tracks Window scroll position. !img-demo - useWindowSize — tracks Window dimensions. !img-demo - useMeasure and useSize — tracks an HTML element's dimensions. !img-demo - createBreakpoint — tracks innerWidth - useScrollbarWidth — detects browser's native scrollbars width. !img-demo - usePinchZoom — tracks pointer events to detect pinch zoom in and out status. !img-demo
<br/>
<br/>
- useAudio — plays audio and exposes its controls. !img-demo - useClickAway — triggers callback when user clicks outside target area. - useCss — dynamically adjusts CSS. - useDrop and useDropArea — tracks file, link and copy-paste drops. - useFullscreen — display an element or video full-screen. !img-demo - useSlider — provides slide behavior over any HTML element. !img-demo - useSpeech — synthesizes speech from a text string. !img-demo - useVibrate — provide physical feedback using the Vibration API. !img-demo - useVideo — plays video, tracks its state, and exposes playback controls. !img-demo
<br/>
<br/>
- useRaf — re-renders component on each requestAnimationFrame. - useInterval and useHarmonicIntervalFn — re-renders component on a set interval using setInterval. - useSpring — interpolates number over time according to spring dynamics. - useTimeout — re-renders component after a timeout. - useTimeoutFn — calls given function after a timeout. !img-demo - useTween — re-renders component, while tweening a number from 0 to 1. !img-demo - useUpdate — returns a callback, which re-renders component when called.
<br/>
<br/>
- useAsync, useAsyncFn, and useAsyncRetry — resolves an async function. - useBeforeUnload — shows browser alert when user try to reload or close the page. - useCookie — provides way to read, update and delete a cookie. !img-demo - useCopyToClipboard — copies text to clipboard. - useDebounce — debounces a function. !img-demo - useError — error dispatcher. !img-demo - useFavicon — sets favicon of the page. - useLocalStorage — manages a value in localStorage. - useLockBodyScroll — lock scrolling of the body element. - useRafLoop — calls given function inside the RAF loop. - useSessionStorage — manages a value in sessionStorage. - useThrottle and useThrottleFn — throttles a function. !img-demo - useTitle — sets title of the page. - usePermission — query permission status for browser APIs.
<br/>
<br/>
- useEffectOnce — a modified useEffect hook that only runs once. - useEvent — subscribe to events. - useLifecycles — calls mount and unmount callbacks. - useMountedState and useUnmountPromise — track if component is mounted. - usePromise — resolves promise only while component is mounted. - useLogger — logs in console as component goes through life-cycles. - useMount — calls mount callbacks. - useUnmount — calls unmount callbacks. - useUpdateEffect — run an effect only on updates. - useIsomorphicLayoutEffectuseLayoutEffect that that works on server. - useDeepCompareEffect, useShallowCompareEffect, and useCustomCompareEffect
<br/>
<br/>
- createMemo — factory of memoized hooks. - createReducer — factory of reducer hooks with custom middleware. - createReducerContext and createStateContext — factory of hooks for a sharing state between components. - useDefault — returns the default value when state is null or undefined. - useGetSet — returns state getter get() instead of raw state. - useGetSetState — as if useGetSet and useSetState had a baby. - useLatest — returns the latest state or props - usePrevious — returns the previous state or props. !img-demo - usePreviousDistinct — like usePrevious but with a predicate to determine if previous should update. - useObservable — tracks latest value of an Observable. - useRafState — creates setState method which only updates after requestAnimationFrame. !img-demo - useSetState — creates setState method which works like this.setState. !img-demo - useStateList — circularly iterates over an array. !img-demo - useToggle and useBoolean — tracks state of a boolean. !img-demo - useCounter and useNumber — tracks state of a number. !img-demo - useList ~and useUpsert~ — tracks state of an array. !img-demo - useMap — tracks state of an object. !img-demo - useSet — tracks state of a Set. !img-demo - useQueue — implements simple queue. - useStateValidator — tracks state of an object. !img-demo - useStateWithHistory — stores previous state values and provides handles to travel through them. !img-demo - useMultiStateValidator — alike the useStateValidator, but tracks multiple states at a time. !img-demo - useMediatedState — like the regular useState but with mediation by custom function. !img-demo - useFirstMountState — check if current render is first. !img-demo - useRendersCount — count component renders. !img-demo - createGlobalState — cross component shared state.!img-demo - useMethods — neat alternative to useReducer. !img-demo
<br/>
<br/>
- useEnsuredForwardedRef and ensuredForwardRef — use a React.forwardedRef safely. !img-demo








Usage — how to import.
Unlicense — public domain.
Support — add yourself to backer list below.








Contributors