cover

Custom Hooks en React: Guía completa con ejemplos

author photo

Héctorbliss

@hectorbliss

Los custom hooks son una de las características más poderosas de React. Te permiten extraer lógica de componentes y reutilizarla en toda tu aplicación.

En esta guía te muestro cómo crear tus propios hooks desde cero.

¿Qué es un custom hook?

Un custom hook es simplemente una función de JavaScript que:

  1. Su nombre empieza con "use" (por convención y reglas de React)
  2. Puede llamar a otros hooks (useState, useEffect, etc.)
  3. Retorna lo que tú quieras: valores, funciones, objetos...

¿Por qué crear custom hooks?

  • Reutilización: La misma lógica en múltiples componentes
  • Separación de concerns: Lógica fuera del componente
  • Testing: Más fácil de probar en aislamiento
  • Legibilidad: Componentes más limpios

🎬 ¿Te está gustando este contenido? Tenemos más tutoriales de React en nuestro canal de YouTube.


Ejemplos prácticos

1. useLocalStorage

Persiste estado en localStorage automáticamente:

Uso:

2. useDebounce

Retrasa la ejecución de un valor (útil para búsquedas):

Uso:

3. useToggle

Simple pero muy útil:

Uso:

4. useFetch

Hook para hacer peticiones HTTP:

Uso:

Reglas importantes

  1. Siempre empieza con "use": React detecta hooks por el prefijo
  2. Solo llama hooks en el nivel superior: No dentro de loops, condiciones o funciones anidadas
  3. Solo llama hooks desde componentes o custom hooks: No desde funciones regulares

Cuándo crear un custom hook

Sí crear cuando:

  • La misma lógica se repite en 2+ componentes
  • Un componente tiene demasiada lógica de estado
  • Quieres aislar lógica para testing

No crear cuando:

  • Solo se usa en un lugar (espera a que se repita)
  • Es solo una función utilitaria sin hooks
  • Estás "sobre-ingenierizando" algo simple

Conclusión

Los custom hooks son tu herramienta para escribir React limpio y mantenible. No tengas miedo de crear los tuyos cuando veas lógica repetida.

Empieza con hooks simples como useToggle y ve aumentando la complejidad conforme los necesites.

Abrazo. bliss.

meta cover

Así hacemos login en Fixtergeek.com

Checa este otro Post

meta cover

Alternativas ligeras a los frameworks en la era LLM

Checa este otro Post

¡Nuevo curso!

Animaciones web con React + Motion 🧙🏻