152 palabras
1 minuto
Input useDebounceHook

UseDebounceHook para React o Preact

¿Qué es el Input Debounce?

El “input debounce” es como poner un temporizador en tus acciones cuando estás escribiendo en un campo de texto o seleccionando opciones. Imagina que estás buscando algo en internet y cada vez que escribes una letra, tu búsqueda se activa, con el debounce podrás establecer un delay entre la última pulsación y la ejecución. Esto evita que se lance la búsqueda cada vez que escribes algo nuevo, haciéndola más eficiente y manteniendo la experiencia del usuario fluida.

Para crear tu propio Hook para el Input Debounce

import { useEffect, useRef, useState } from "preact/hooks"

export default function useDebounce<T>(value: T, delay: number = 500): T {
	const [debouncedValue, setDebouncedValue] = useState<T>(value)
	const debounceRef = useRef<NodeJS.Timeout>()

	useEffect(() => {
		debounceRef.current = setTimeout(() => setDebouncedValue(value), delay)

		return () => {
			clearTimeout(debounceRef.current)
		}
	}, [value, delay])

	return debouncedValue
}

Usar Hook mediante dependencia

Desde usehooks.com/usedebounce

npm i @uidotdev/usehooks
// or
pnpm add @uidotdev/usehooks