Un hook personalizado es una función que empieza con la palabra use
y que puede utilizar otros hooks. Son ideales para reutilizar lógica en diferentes componentes. Por ejemplo, podemos crear un hook personalizado para extraer la gestión del estado de un contador:
// ./hooks/useCounter.js
export function useCounter() {
const [count, setCount] = useState(0)
const increment = () => setCount(count + 1)
const decrement = () => setCount(count - 1)
return { count, increment, decrement }
}
Para usarlo en un componente:
import { useCounter } from './hooks/useCounter.js'
function Counter() {
const { count, increment, decrement } = useCounter()
return (
<>
<button onClick={decrement}>-</button>
<span>{count}</span>
<button onClick={increment}>+</button>
</>
)
}