react-use
- Version 17.6.0
- Published
- 454 kB
- 14 dependencies
- Unlicense license
Install
npm i react-use
yarn add react-use
pnpm add react-use
Overview
Collection of React Hooks
Index
Variables
Functions
- createBreakpoint()
- createGlobalState()
- createMemo()
- createReducer()
- createReducerContext()
- createStateContext()
- ensuredForwardRef()
- useAsync()
- useAsyncFn()
- useAsyncRetry()
- useAudio()
- useBeforeUnload()
- useBoolean()
- useClickAway()
- useCookie()
- useCopyToClipboard()
- useCounter()
- useCss()
- useCustomCompareEffect()
- useDebounce()
- useDeepCompareEffect()
- useDefault()
- useDrop()
- useDropArea()
- useEffectOnce()
- useEnsuredForwardedRef()
- useError()
- useEvent()
- useFavicon()
- useFirstMountState()
- useFullscreen()
- useGeolocation()
- useGetSet()
- useGetSetState()
- useHarmonicIntervalFn()
- useHash()
- useHover()
- useHoverDirty()
- useIdle()
- useIntersection()
- useInterval()
- useKey()
- useKeyPress()
- useKeyPressEvent()
- useLatest()
- useLifecycles()
- useList()
- useLocalStorage()
- useLocation()
- useLockBodyScroll()
- useLogger()
- useLongPress()
- useMap()
- useMedia()
- useMediaDevices()
- useMediatedState()
- useMethods()
- useMotion()
- useMount()
- useMountedState()
- useMouse()
- useMouseHovered()
- useMouseWheel()
- useMultiStateValidator()
- useNetworkState()
- useNumber()
- useObservable()
- useOrientation()
- usePageLeave()
- usePermission()
- usePinchZoom()
- usePrevious()
- usePreviousDistinct()
- useQueue()
- useRaf()
- useRafLoop()
- useRafState()
- useRendersCount()
- useScratch()
- useScroll()
- useScrollbarWidth()
- useScrolling()
- useSessionStorage()
- useSet()
- useSetState()
- useShallowCompareEffect()
- useSize()
- useSlider()
- useSpeech()
- useStartTyping()
- useStateList()
- useStateValidator()
- useStateWithHistory()
- useThrottle()
- useThrottleFn()
- useTimeout()
- useTimeoutFn()
- useToggle()
- useTween()
- useUnmount()
- useUnmountPromise()
- useUpdate()
- useUpsert()
- useVideo()
- useWindowScroll()
- useWindowSize()
Variables
variable useBattery
const useBattery: () => UseBatteryState;
variable useIsomorphicLayoutEffect
const useIsomorphicLayoutEffect: any;
variable useMeasure
const useMeasure: <E extends Element = Element>() => UseMeasureResult<E>;
variable usePromise
const usePromise: UsePromise;
variable useSearchParam
const useSearchParam: UseQueryParam;
variable useTitle
const useTitle: (title: string, options?: UseTitleOptions) => void;
variable useUpdateEffect
const useUpdateEffect: any;
variable useVibrate
const useVibrate: ( enabled?: boolean, pattern?: VibrationPattern, loop?: boolean) => void;
Functions
function createBreakpoint
createBreakpoint: (breakpoints?: { [name: string]: number }) => () => string;
function createGlobalState
createGlobalState: { <S = any>(initialState: IHookStateInitAction<S>): () => [ S, (state: IHookStateSetAction<S>) => void ]; <S = undefined>(): () => [S, (state: IHookStateSetAction<S>) => void];};
function createMemo
createMemo: <T extends (...args: any) => any>( fn: T) => (...args: Parameters<T>) => ReturnType<T>;
function createReducer
createReducer: <Action, State>( ...middlewares: Middleware<Action, State>[]) => ( reducer: (state: State, action: Action) => State, initialState: State, initializer?: (value: State) => State) => [State, Dispatch<Action>];
function createReducerContext
createReducerContext: <R extends any>( reducer: R, defaultInitialState: any) => readonly [ () => [any, any], ({ children, initialState, }: { children?: React.ReactNode; initialState?: any; }) => any, any];
function createStateContext
createStateContext: <T>( defaultInitialValue: T) => readonly [ () => [T, any], ({ children, initialValue, }: { children?: React.ReactNode; initialValue?: T; }) => any, any];
function ensuredForwardRef
ensuredForwardRef: <T, P = {}>( Component: RefForwardingComponent<T, P>) => ForwardRefExoticComponent<any>;
function useAsync
useAsync: <T extends FunctionReturningPromise>( fn: T, deps?: DependencyList) => import('./useAsyncFn').AsyncState< import('./misc/types').PromiseType<ReturnType<T>>>;
function useAsyncFn
useAsyncFn: <T extends FunctionReturningPromise>( fn: T, deps?: DependencyList, initialState?: StateFromFunctionReturningPromise<T>) => AsyncFnReturn<T>;
function useAsyncRetry
useAsyncRetry: <T>( fn: () => Promise<T>, deps?: DependencyList) => | { retry: () => void; loading: boolean; error?: undefined; value?: undefined } | { retry: () => void; loading: false; error: Error; value?: undefined } | { retry: () => void; loading: true; error?: Error | undefined; value?: T } | { retry: () => void; loading: false; error?: undefined; value: T };
function useAudio
useAudio: ( elOrProps: any) => readonly [ any, HTMLMediaState, { play: () => Promise<void> | undefined; pause: () => void; seek: (time: number) => void; volume: (volume: number) => void; mute: () => void; unmute: () => void; }, any];
function useBeforeUnload
useBeforeUnload: ( enabled?: boolean | (() => boolean), message?: string | undefined) => void;
function useBoolean
useBoolean: (initialValue: boolean) => [boolean, (nextValue?: any) => void];
function useClickAway
useClickAway: <E extends Event = Event>( ref: RefObject<HTMLElement>, onClickAway: (event: E) => void, events?: string[]) => void;
function useCookie
useCookie: ( cookieName: string) => [ string, (newValue: string, options?: Cookies.CookieAttributes | undefined) => void, () => void];
function useCopyToClipboard
useCopyToClipboard: () => [CopyToClipboardState, (value: string) => void];
function useCounter
useCounter: ( initialValue?: IHookStateInitAction<number>, max?: number | null, min?: number | null) => [number, CounterActions];
function useCss
useCss: (css: object) => string;
function useCustomCompareEffect
useCustomCompareEffect: <TDeps extends DependencyList>( effect: EffectCallback, deps: TDeps, depsEqual: DepsEqualFnType<TDeps>) => void;
function useDebounce
useDebounce: ( fn: Function, ms?: number, deps?: DependencyList) => UseDebounceReturn;
function useDeepCompareEffect
useDeepCompareEffect: (effect: EffectCallback, deps: DependencyList) => void;
function useDefault
useDefault: <TStateType>( defaultValue: TStateType, initialValue: TStateType | (() => TStateType)) => readonly [TStateType, any];
function useDrop
useDrop: (options?: DropAreaOptions, args?: never[]) => DropAreaState;
function useDropArea
useDropArea: (options?: DropAreaOptions) => [DropAreaBond, DropAreaState];
function useEffectOnce
useEffectOnce: (effect: EffectCallback) => void;
function useEnsuredForwardedRef
useEnsuredForwardedRef: <T>( forwardedRef: MutableRefObject<T>) => MutableRefObject<T>;
function useError
useError: () => (err: Error) => void;
function useEvent
useEvent: <T extends UseEventTarget>( name: Parameters<AddEventListener<T>>[0], handler?: Parameters<AddEventListener<T>>[1], target?: T | Window, options?: UseEventOptions<T>) => void;
function useFavicon
useFavicon: (href: string) => void;
function useFirstMountState
useFirstMountState: () => boolean;
function useFullscreen
useFullscreen: ( ref: RefObject<Element>, enabled: boolean, options?: FullScreenOptions) => boolean;
function useGeolocation
useGeolocation: ( options?: PositionOptions | undefined) => GeoLocationSensorState;
function useGetSet
useGetSet: <S>( initialState: IHookStateInitAction<S>) => [get: () => S, set: Dispatch<IHookStateSetAction<S>>];
function useGetSetState
useGetSetState: <T extends object>( initialState?: T) => [() => T, (patch: Partial<T>) => void];
function useHarmonicIntervalFn
useHarmonicIntervalFn: (fn: Function, delay?: number | null) => void;
function useHash
useHash: () => readonly [string, (newHash: string) => void];
read and write url hash, response to url hash change
function useHover
useHover: (element: Element) => [React.ReactElement<any>, boolean];
function useHoverDirty
useHoverDirty: (ref: RefObject<Element>, enabled?: boolean) => boolean;
function useIdle
useIdle: (ms?: number, initialState?: boolean, events?: string[]) => boolean;
function useIntersection
useIntersection: ( ref: RefObject<HTMLElement>, options: IntersectionObserverInit) => IntersectionObserverEntry | null;
function useInterval
useInterval: (callback: Function, delay?: number | null | undefined) => void;
function useKey
useKey: <T extends UseEventTarget>( key: KeyFilter, fn?: Handler, opts?: UseKeyOptions<T>, deps?: DependencyList) => void;
function useKeyPress
useKeyPress: (keyFilter: KeyFilter) => [boolean, KeyboardEvent | null];
function useKeyPressEvent
useKeyPressEvent: ( key: string | KeyFilter, keydown?: Handler | null | undefined, keyup?: Handler | null | undefined, useKeyPress?: (keyFilter: KeyFilter) => [boolean, KeyboardEvent | null]) => void;
function useLatest
useLatest: <T>(value: T) => { readonly current: T };
function useLifecycles
useLifecycles: (mount: any, unmount?: any) => void;
function useList
useList: <T>(initialList?: IHookStateInitAction<T[]>) => [T[], ListActions<T>];
function useLocalStorage
useLocalStorage: <T>( key: string, initialValue?: T, options?: | { raw: true } | { raw: false; serializer: (value: T) => string; deserializer: (value: string) => T; }) => [T, Dispatch<SetStateAction<T>>, () => void];
function useLocation
useLocation: () => LocationSensorState;
function useLockBodyScroll
useLockBodyScroll: ( _locked?: boolean, _elementRef?: RefObject<HTMLElement> | undefined) => void;
function useLogger
useLogger: (componentName: string, ...rest: any[]) => void;
function useLongPress
useLongPress: ( callback: (e: TouchEvent | MouseEvent) => void, { isPreventDefault, delay }?: Options) => { readonly onMouseDown: (e: any) => void; readonly onTouchStart: (e: any) => void; readonly onMouseUp: () => void; readonly onMouseLeave: () => void; readonly onTouchEnd: () => void;};
function useMap
useMap: <T extends object = any>(initialMap?: T) => [T, Actions<T>];
function useMedia
useMedia: (query: string, defaultState?: boolean | undefined) => boolean;
function useMediaDevices
useMediaDevices: () => {};
function useMediatedState
useMediatedState: { <S = undefined>( mediator: StateMediator<S | undefined> ): UseMediatedStateReturn<S>; <S = any>( mediator: StateMediator<S>, initialState: S ): UseMediatedStateReturn<S>;};
function useMethods
useMethods: <M, T>( createMethods: CreateMethods<M, T>, initialState: T) => [T, WrappedMethods<M>];
function useMotion
useMotion: (initialState?: MotionSensorState) => MotionSensorState;
function useMount
useMount: (fn: () => void) => void;
function useMountedState
useMountedState: () => () => boolean;
function useMouse
useMouse: (ref: RefObject<Element>) => State;
function useMouseHovered
useMouseHovered: ( ref: RefObject<Element>, options?: UseMouseHoveredOptions) => State;
function useMouseWheel
useMouseWheel: () => number;
function useMultiStateValidator
useMultiStateValidator: < V extends ValidityState, S extends MultiStateValidatorStates>( states: S, validator: MultiStateValidator<V, S>, initialValidity?: V) => UseStateValidatorReturn<V>;
function useNetworkState
useNetworkState: ( initialState?: IHookStateInitAction<IUseNetworkState>) => IUseNetworkState;
function useNumber
useNumber: ( initialValue?: IHookStateInitAction<number>, max?: number | null, min?: number | null) => [number, CounterActions];
function useObservable
useObservable: { <T>(observable$: Observable<T>): T | undefined; <T>(observable$: Observable<T>, initialValue: T): T;};
function useOrientation
useOrientation: (initialState?: OrientationState) => OrientationState;
function usePageLeave
usePageLeave: (onPageLeave: any, args?: never[]) => void;
function usePermission
usePermission: (permissionDesc: IPermissionDescriptor) => IState;
function usePinchZoom
usePinchZoom: ( ref: RefObject<HTMLElement>) => | { zoomingState: ZoomState; pinchState: number } | { zoomingState: null; pinchState: number };
function usePrevious
usePrevious: <T>(state: T) => T | undefined;
function usePreviousDistinct
usePreviousDistinct: <T>(value: T, compare?: Predicate<T>) => T | undefined;
function useQueue
useQueue: <T>(initialValue?: T[]) => QueueMethods<T>;
function useRaf
useRaf: (ms?: number, delay?: number) => number;
function useRafLoop
useRafLoop: ( callback: FrameRequestCallback, initiallyActive?: boolean) => RafLoopReturns;
function useRafState
useRafState: <S>( initialState: S | (() => S)) => [S, Dispatch<SetStateAction<S>>];
function useRendersCount
useRendersCount: () => number;
function useScratch
useScratch: ( params?: ScratchSensorParams) => [(el: HTMLElement | null) => void, ScratchSensorState];
function useScroll
useScroll: (ref: RefObject<HTMLElement>) => State;
function useScrollbarWidth
useScrollbarWidth: () => number | undefined;
function useScrolling
useScrolling: (ref: RefObject<HTMLElement>) => boolean;
function useSessionStorage
useSessionStorage: <T>( key: string, initialValue?: T, raw?: boolean | undefined) => [T, (value: T) => void];
function useSet
useSet: <K>(initialSet?: Set<K>) => [Set<K>, Actions<K>];
function useSetState
useSetState: <T extends object>( initialState?: T) => [T, (patch: Partial<T> | ((prevState: T) => Partial<T>)) => void];
function useShallowCompareEffect
useShallowCompareEffect: (effect: EffectCallback, deps: DependencyList) => void;
function useSize
useSize: ( element: Element, { width, height }?: Partial<State>) => [React.ReactElement<any>, State];
function useSlider
useSlider: (ref: RefObject<HTMLElement>, options?: Partial<Options>) => State;
function useSpeech
useSpeech: (text: string, options: ISpeechOptions) => ISpeechState;
function useStartTyping
useStartTyping: (onStartTyping: (event: KeyboardEvent) => void) => void;
function useStateList
useStateList: <T>(stateSet?: T[]) => UseStateListReturn<T>;
function useStateValidator
useStateValidator: <V extends ValidityState, S>( state: S, validator: StateValidator<V, S>, initialState?: V) => UseStateValidatorReturn<V>;
function useStateWithHistory
useStateWithHistory: { <S, I extends S>( initialState: IHookStateInitAction<S>, capacity?: number, initialHistory?: I[] ): UseStateHistoryReturn<S>; <S = undefined>(): UseStateHistoryReturn<S>;};
function useThrottle
useThrottle: <T>(value: T, ms?: number) => T;
function useThrottleFn
useThrottleFn: <T, U extends any[]>( fn: (...args: U) => T, ms: number | undefined, args: U) => T;
function useTimeout
useTimeout: (ms?: number) => UseTimeoutReturn;
function useTimeoutFn
useTimeoutFn: (fn: Function, ms?: number) => UseTimeoutFnReturn;
function useToggle
useToggle: (initialValue: boolean) => [boolean, (nextValue?: any) => void];
function useTween
useTween: (easingName?: string, ms?: number, delay?: number) => number;
function useUnmount
useUnmount: (fn: () => any) => void;
function useUnmountPromise
useUnmountPromise: () => Race;
function useUpdate
useUpdate: () => () => void;
function useUpsert
useUpsert: <T>( predicate: (a: T, b: T) => boolean, initialList?: IHookStateInitAction<T[]>) => [T[], UpsertListActions<T>];
Deprecated
Use
useList
hook's upsert action instead
function useVideo
useVideo: ( elOrProps: any) => readonly [ any, HTMLMediaState, { play: () => Promise<void> | undefined; pause: () => void; seek: (time: number) => void; volume: (volume: number) => void; mute: () => void; unmute: () => void; }, any];
function useWindowScroll
useWindowScroll: () => State;
function useWindowSize
useWindowSize: ({ initialWidth, initialHeight, onChange }?: Options) => { width: number; height: number;};
Package Files (112)
- lib/factory/createBreakpoint.d.ts
- lib/factory/createGlobalState.d.ts
- lib/factory/createMemo.d.ts
- lib/factory/createReducer.d.ts
- lib/factory/createReducerContext.d.ts
- lib/factory/createStateContext.d.ts
- lib/index.d.ts
- lib/useAsync.d.ts
- lib/useAsyncFn.d.ts
- lib/useAsyncRetry.d.ts
- lib/useAudio.d.ts
- lib/useBattery.d.ts
- lib/useBeforeUnload.d.ts
- lib/useClickAway.d.ts
- lib/useCookie.d.ts
- lib/useCopyToClipboard.d.ts
- lib/useCounter.d.ts
- lib/useCss.d.ts
- lib/useCustomCompareEffect.d.ts
- lib/useDebounce.d.ts
- lib/useDeepCompareEffect.d.ts
- lib/useDefault.d.ts
- lib/useDrop.d.ts
- lib/useDropArea.d.ts
- lib/useEffectOnce.d.ts
- lib/useEnsuredForwardedRef.d.ts
- lib/useError.d.ts
- lib/useEvent.d.ts
- lib/useFavicon.d.ts
- lib/useFirstMountState.d.ts
- lib/useFullscreen.d.ts
- lib/useGeolocation.d.ts
- lib/useGetSet.d.ts
- lib/useGetSetState.d.ts
- lib/useHarmonicIntervalFn.d.ts
- lib/useHash.d.ts
- lib/useHover.d.ts
- lib/useHoverDirty.d.ts
- lib/useIdle.d.ts
- lib/useIntersection.d.ts
- lib/useInterval.d.ts
- lib/useIsomorphicLayoutEffect.d.ts
- lib/useKey.d.ts
- lib/useKeyPress.d.ts
- lib/useKeyPressEvent.d.ts
- lib/useLatest.d.ts
- lib/useLifecycles.d.ts
- lib/useList.d.ts
- lib/useLocalStorage.d.ts
- lib/useLocation.d.ts
- lib/useLockBodyScroll.d.ts
- lib/useLogger.d.ts
- lib/useLongPress.d.ts
- lib/useMap.d.ts
- lib/useMeasure.d.ts
- lib/useMedia.d.ts
- lib/useMediaDevices.d.ts
- lib/useMediatedState.d.ts
- lib/useMethods.d.ts
- lib/useMotion.d.ts
- lib/useMount.d.ts
- lib/useMountedState.d.ts
- lib/useMouse.d.ts
- lib/useMouseHovered.d.ts
- lib/useMouseWheel.d.ts
- lib/useMultiStateValidator.d.ts
- lib/useNetworkState.d.ts
- lib/useObservable.d.ts
- lib/useOrientation.d.ts
- lib/usePageLeave.d.ts
- lib/usePermission.d.ts
- lib/usePinchZoom.d.ts
- lib/usePrevious.d.ts
- lib/usePreviousDistinct.d.ts
- lib/usePromise.d.ts
- lib/useQueue.d.ts
- lib/useRaf.d.ts
- lib/useRafLoop.d.ts
- lib/useRafState.d.ts
- lib/useRendersCount.d.ts
- lib/useScratch.d.ts
- lib/useScroll.d.ts
- lib/useScrollbarWidth.d.ts
- lib/useScrolling.d.ts
- lib/useSearchParam.d.ts
- lib/useSessionStorage.d.ts
- lib/useSet.d.ts
- lib/useSetState.d.ts
- lib/useShallowCompareEffect.d.ts
- lib/useSize.d.ts
- lib/useSlider.d.ts
- lib/useSpeech.d.ts
- lib/useStartTyping.d.ts
- lib/useStateList.d.ts
- lib/useStateValidator.d.ts
- lib/useStateWithHistory.d.ts
- lib/useThrottle.d.ts
- lib/useThrottleFn.d.ts
- lib/useTimeout.d.ts
- lib/useTimeoutFn.d.ts
- lib/useTitle.d.ts
- lib/useToggle.d.ts
- lib/useTween.d.ts
- lib/useUnmount.d.ts
- lib/useUnmountPromise.d.ts
- lib/useUpdate.d.ts
- lib/useUpdateEffect.d.ts
- lib/useUpsert.d.ts
- lib/useVibrate.d.ts
- lib/useVideo.d.ts
- lib/useWindowScroll.d.ts
- lib/useWindowSize.d.ts
Dependencies (14)
Dev Dependencies (58)
- @babel/core
- @babel/plugin-syntax-dynamic-import
- @babel/preset-env
- @babel/preset-react
- @babel/preset-typescript
- @semantic-release/changelog
- @semantic-release/git
- @semantic-release/npm
- @shopify/jest-dom-mocks
- @storybook/addon-actions
- @storybook/addon-knobs
- @storybook/addon-notes
- @storybook/addon-options
- @storybook/react
- @testing-library/react
- @testing-library/react-hooks
- @types/jest
- @types/react
- @typescript-eslint/eslint-plugin
- @typescript-eslint/parser
- babel-core
- babel-eslint
- babel-loader
- babel-plugin-dynamic-import-node
- eslint
- eslint-config-prettier
- eslint-config-react-app
- eslint-plugin-flowtype
- eslint-plugin-import
- eslint-plugin-jsx-a11y
- eslint-plugin-prettier
- eslint-plugin-react
- eslint-plugin-react-hooks
- fork-ts-checker-webpack-plugin
- gh-pages
- husky
- jest
- jest-localstorage-mock
- keyboardjs
- lint-staged
- markdown-loader
- prettier
- raf-stub
- react
- react-dom
- react-frame-component
- react-spring
- react-test-renderer
- rebound
- redux-logger
- redux-thunk
- rimraf
- rxjs
- semantic-release
- ts-jest
- ts-loader
- ts-node
- typescript
Peer Dependencies (2)
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/react-use
.
- Markdown[](https://www.jsdocs.io/package/react-use)
- HTML<a href="https://www.jsdocs.io/package/react-use"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 6767 ms. - Missing or incorrect documentation? Open an issue for this package.