Prashant Labs DevLogs
Back to Snippets
#React #TypeScript #Hooks

Debounce Hook in React TypeScript

A custom React hook for debouncing search input or high-frequency event handlers.

P
Prashant Sharan

Use this custom useDebounce hook to throttle API calls during rapid keystroke input in input search fields:

import { useEffect, useState } from 'react';

export function useDebounce<T>(value: T, delayMs: number = 300): T {
  const [debouncedValue, setDebouncedValue] = useState<T>(value);

  useEffect(() => {
    const handler = setTimeout(() => {
      setDebouncedValue(value);
    }, delayMs);

    return () => {
      clearTimeout(handler);
    };
  }, [value, delayMs]);

  return debouncedValue;
}

Discussions & Comments

🐙 Powered by GitHub Discussions