CodeAventura
React
▸Patrones avanzados▸Hooks: las reglas del juego

Misión

●localhost:5173
20 / 21Hooks: las reglas del juego
Anterior

Hooks: las reglas del juego

¿Qué son los hooks?

Los hooks son funciones especiales que te permiten "engancharte" a las características de React desde componentes funcionales. Ya conoces tres:

  • useState → engánchate al sistema de estado
  • useEffect → engánchate al ciclo de vida (montar, actualizar, desmontar)
  • useRef → engánchate al DOM o guarda valores mutables

El prefijo use es la señal de que una función es un hook. Es lo que le dice a React: "esta función necesita acceso a mis internals".

Las 2 reglas de los hooks

React tiene solo dos reglas para los hooks. Son simples pero inquebrantables:

Regla 1: Solo en el nivel superior

Los hooks deben llamarse en el nivel superior de tu componente. Nunca dentro de condicionales, bucles o funciones anidadas.

Regla 2: Solo en componentes de React o hooks personalizados

Los hooks solo pueden llamarse en:

  • Funciones de componente (las que devuelven JSX)
  • Hooks personalizados (funciones que empiezan con use)

¿Por qué estas reglas?

React identifica cada hook por su posición (el orden en que se llama). En el primer render:

Si metes un hook dentro de un if, en algunos renders podría no ejecutarse. Los hooks se "desplazarían" y React asociaría el valor equivocado al hook equivocado:

React confunde un estado con un efecto. Todo se rompe.

La solución: condiciones DENTRO, no FUERA

El truco es llamar al hook siempre, y poner la condición dentro del efecto o en el JSX:

Otros hooks de React

Además de los tres que conoces, React tiene más hooks:

HookPara qué
useMemoMemorizar cálculos costosos
useCallbackMemorizar funciones
useContextAcceder a contexto global
useReducerEstado complejo con acciones

No necesitas dominarlos todos ahora — los tres que conoces cubren el 90% de los casos.

Tu desafío 🚀

En el editor tienes un componente con hooks usados incorrectamente (dentro de condicionales). Tu misión:

  1. Mueve todos los hooks al nivel superior del componente
  2. Pon las condiciones dentro de los hooks o en el JSX
  3. Haz que el componente compile y funcione correctamente

Las reglas de los hooks son el contrato que haces con React. Respétalas y React te recompensará con un comportamiento predecible y sin bugs misteriosos.