Creación de Reducers: If, Switch y Reducer Objects en React
Clase 13 de 19 • Curso de React.js: Manejo Profesional del Estado
Resumen
¿Cómo crear un reducer en React?
Los reducers son elementos esenciales en la gestión del estado en aplicaciones React. Conocer diferentes formas de crearlos permite optimizar su funcionalidad y mejorar el manejo del estado en proyectos complejos. A continuación, exploraremos tres métodos para desarrollar un reducer, cada uno con sus particularidades y ventajas.
¿Qué pasos seguir para crear un reducer básico con if?
El primer método para la creación de reducer es mediante el uso de condicionales if
, una técnica básica pero efectiva para quienes comienzan en programación. Sigue estos pasos:
-
Definición del estado inicial:
- Inicia declarando una constante con tu estado inicial. Este debe ser un objeto que contenga toda la información necesaria para tu aplicación.
const initialState = { error: false, loading: false, // otros estados iniciales };
-
Creación del reducer:
- Los reducers son funciones que reciben dos parámetros:
state
yaction
.
const reducer = (state, action) => { if (action.type === 'ERROR') { return { ...state, error: true, loading: false, }; } if (action.type === 'CHECK') { return { ...state, loading: true, }; } // Posibles condicionales adicionales return state; };
- Los reducers son funciones que reciben dos parámetros:
-
Manejo de default:
- Al final de los condicionales, asegúrate de retornar el estado actual si ningún
action.type
coincide.
- Al final de los condicionales, asegúrate de retornar el estado actual si ningún
¿Cómo implementar un reducer usando switch?
La estructura switch
es más popular para construir reducers dado su formato claro y limpio, lo cual facilita su lectura.
-
Estructura del switch:
- Al igual que con los
if
, inicia con los parámetrosstate
yaction
.
const reducer = (state, action) => { switch (action.type) { case 'ERROR': return { ...state, error: true, loading: false, }; case 'CHECK': return { ...state, loading: true, }; default: return state; } };
- Al igual que con los
-
Uso del default:
- El
default
en unswitch
funge como un comodín para manejar acciones que no se ajustan a los casos definidos.
- El
¿Qué es un reducer object y cómo se usa?
El método de los reducer objects es considerado el más elegante. Este utiliza objetos para definir los posibles estados de tu aplicación, resultando en un código más limpio y fácil de entender.
-
Creación del objeto de reducers:
const reducerObject = { 'ERROR': (state) => ({ ...state, error: true, loading: false, }), 'CHECK': (state) => ({ ...state, loading: true, }), };
-
Función principal del reducer:
- La función
reducer
se divide en dos partes: el objeto que contiene las funciones correspondientes a cadaaction.type
, y una lógica para gestionar cuál función ejecutar.
const reducer = (state, action) => { return reducerObject[action.type] ? reducerObject[action.type](state) : state; };
- La función
¿Por qué elegir un método sobre otro?
Conocer varios métodos te permite adaptarte a diferentes escenarios según las necesidades de tu aplicación o tus preferencias personales. La técnica de if
es directa y útil para aprendizajes iniciales, switch
es más organizado para múltiples casos, y los reducer objects proporcionan un enfoque limpio y modular. Cada opción tiene sus pros y contras, así que experimenta y decide cuál se ajusta mejor a tu flujo de trabajo. ¡Sigue explorando las capacidades de React y sigue aprendiendo para mejorar tus habilidades de desarrollo!