JAVASCRIPT
React useDebounce Hook for Input Optimization
Improve performance by debouncing any value in React, commonly used for search inputs or form fields to delay updates until user pauses.
import { useState, useEffect } from 'react';
function useDebounce(value, delay) {
const [debouncedValue, setDebouncedValue] = useState(value);
useEffect(() => {
const handler = setTimeout(() => {
setDebouncedValue(value);
}, delay);
return () => {
clearTimeout(handler);
};
}, [value, delay]);
return debouncedValue;
}
How it works: This `useDebounce` hook delays updating a value for a specified `delay` period. It's particularly useful for preventing excessive re-renders or API calls, for instance, when a user types into a search input. The hook returns the debounced value, which only updates after the user has stopped typing for the defined delay, ensuring smoother performance and reduced resource usage.