useDebounce hook
TypeScriptPublic
import { useState, useEffect } from 'react'
export function useDebounce<T>(value: T, delay = 300): T {
const [debounced, setDebounced] = useState(value)
useEffect(() => {
const id = setTimeout(() => setDebounced(value), delay)
return () => clearTimeout(id)
}, [value, delay])
return debounced
}Comments(2)
@linuxgnu4d ago
Clean. I usually add a leading-edge option too.
devguest2d ago
Saved me a dependency, thanks!