packages
useThrottle

useThrottle

Throttle fast-changing state

Usage

import { useThrottle } from '@hookit/throttle';
 
export const Component = () => {
  const [state, setState] = React.useState('');
  const throttledValue = useThrottle(state, 1000);
 
  return (
    <>
      <input onChange={(e) => setState(e.target.value)} type='text' />
 
      {/* updates immediately */}
      <p>State: {state}</p>
 
      {/* updates every second */}
      <p>throttled Value: {throttledValue}</p>
    </>
  );
};

Arguments


NameTypeRequired?
valueany
delaynumber

Returns


NameDescriptionType
throttledValuethe throttled value from the value argumentany

useThrottledState

import { useThrottledState } from '@hookit/throttle';
 
export const Component = () => {
  const [state, throttledValue, setState] = useThrottledState('', 1000);
 
  return (
    <>
      <input onChange={(e) => setState(e.target.value)} type='text' />
 
      {/* updates immediately */}
      <p>State: {state}</p>
 
      {/* updates every second */}
      <p>throttled Value: {throttledValue}</p>
    </>
  );
};

Arguments


NameTypeRequired?
valueany
delaynumber

Returns


IndexNameDescriptionType
0statecurrent stateany
1throttledValuethrottled value from stateany
2setStatesets new state(prevState: any) => any