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
