React Intermedio: Patrones y Optimización
Texto Leccion
useReducer: Máquinas de Estado para Componentes
useReducer: máquinas de estado para componentes useReducer ayuda cuando el estado de un componente tiene muchas transiciones posibles. En lugar de repartir lógica en varios setState, centralizás cambios en un reducer que recibe estado actual y una acción. Cuándo usar useReducer Cuando el nuevo estado depende del estado anterior. Cuando hay varias acciones: cargar, éxito, error, reset, editar, guardar. Cuando querés que la lógica sea testeable como función pura. Cuando el componente ya tiene dema
Tiempo de estudio
25 Min
useReducer: máquinas de estado para componentes
useReducer ayuda cuando el estado de un componente tiene muchas transiciones posibles. En lugar de repartir lógica en varios setState, centralizás cambios en un reducer que recibe estado actual y una acción.
Cuándo usar useReducer
- Cuando el nuevo estado depende del estado anterior.
- Cuando hay varias acciones: cargar, éxito, error, reset, editar, guardar.
- Cuando querés que la lógica sea testeable como función pura.
- Cuando el componente ya tiene demasiados
useStaterelacionados.
const initialState = { status: "idle", data: null, error: null };
function reducer(state, action) {
switch (action.type) {
case "loading":
return { ...state, status: "loading", error: null };
case "success":
return { status: "success", data: action.payload, error: null };
case "error":
return { ...state, status: "error", error: action.error };
case "reset":
return initialState;
default:
return state;
}
}Regla práctica
Si te cuesta nombrar las acciones, todavía no entendés bien el flujo del componente. Escribí primero los estados posibles y después las transiciones.
Ejercicio: formulario con reducer
Convertí un formulario con estados separados de loading, error, success y valores a un reducer. Agregá acciones para editar campo, enviar, guardar con éxito y fallar.
Mini-rúbrica
- El reducer no muta el estado original.
- Las acciones tienen nombres claros.
- El componente queda más legible que antes.
Texto Lessons
#1
Custom Hooks: Abstrayendo Lógica Compleja
#2
Context API: Estado Global sin Complejidades
#3
React.memo y useMemo: Evitando Renderizados Innecesarios
#4
Compound Components: Composición Inteligente
#5
useReducer: Máquinas de Estado para Componentes
#6
Code Splitting: Carga Perfumada para Mejores Experiencias
#7
Render Props: Compartiendo Lógica Visual
#8
Patrón Provider: Inyección de Dependencias
#9
ErrorBoundary React: ejemplo práctico y fallback
#10
High Order Components: Envolviendo Funcionalidad
#11
Arquitectura de Estado: Organización Escalable
#12
Testing con React Testing Library: Pruebas Centradas en el Usuario
Ver full lessons
Revisar curso learning pagina