React Dojo

Buscar

Busca conceptos, ejercicios y quizzes

Hook · Estado complejo

useReducer

Transiciones explícitas

Cuando el siguiente estado depende del anterior y de qué pasó, useReducer convierte la lógica difusa de varios setEstado en una transición nombrada y testeable.

Forma del reducer

(estado, acción) => nuevoEstado. Mantén el reducer puro: sin fetch, sin mutación, sin Math.random(). Si necesitas efectos, dispárlos después del dispatch.

Cuándo prefiere a useState

Cuando hay varias formas de modificar el mismo estado, cuando la lógica de transición se repite en varios eventos, o cuando quieres registrar/depurar cada cambio en un único punto.

Tropiezos comunes

  • 01El reducer DEBE ser puro: nada de fetch, console.log con efectos, o IDs aleatorios.
  • 02No mutes el estado: state.items.push() rompe React. Devuelve siempre objetos/arrays nuevos.
  • 03Si guardas valores que cambian poco, useReducer puede ser overkill — useState basta.
¿Fue útil?
Inicia sesión para dar feedback