Integración de Redux en Aplicaciones React
Clase 8 de 22 • Curso Profesional de React.js y Redux
Resumen
¿Cómo integrar Redux con React?
Integrar Redux en una aplicación React puede parecer un desafío, pero es esencial para manejar el estado global de forma eficiente. Utilizar tecnologías como Redux
y React Redux
permite optimizar el código y evitar errores comunes. Veamos paso a paso cómo lograrlo.
¿Cómo instalar Redux y React Redux?
Para iniciar, se deben instalar las librerías necesarias mediante el uso de npm. Desde la terminal, ejecuta el siguiente comando:
npm install redux react-redux
Estas librerías son fundamentales: Redux
para gestionar el estado global, y React Redux
para facilitar la integración con React.
¿Cómo estructurar las acciones de Redux?
Una vez instaladas las librerías, es momento de estructurar las acciones:
- Crear el directorio de actions: Dentro de la carpeta
source
, genera una carpeta llamadaactions
. - Definir los tipos de acciones: Es recomendable usar constantes para exportar los tipos (types) de acciones. Esto previene errores tipográficos. Por ejemplo:
// actions/types.js
export const SET_POKEMONS = 'SetPokemons';
- Crear los action creators: Los action creators son funciones que retornan un objeto
action
.
// actions/index.js
import { SET_POKEMONS } from './types';
export const setPokemons = (payload) => ({
type: SET_POKEMONS,
payload,
});
¿Cómo conectar Redux con los componentes de React?
Para conectar Redux a un componente React, usamos connect
de react-redux
.
- mapStateToProps: Función que mapea el estado a las propiedades del componente.
const mapStateToProps = (state) => ({
pokemons: state.pokemons,
});
- mapDispatchToProps: Mapea los dispatchers de acciones a las propiedades del componente.
import { setPokemons } from './actions';
const mapDispatchToProps = (dispatch) => ({
setPokemons: (value) => dispatch(setPokemons(value)),
});
- Conectar el componente: Utiliza
connect
para unir estado y dispatchear acciones.
import { connect } from 'react-redux';
const MyComponent = ({ pokemons, setPokemons }) => {
// Componente funcional que utiliza pokemons y setPokemons
};
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
¿Cómo crear un reducer en Redux?
Los reducers son funciones puras que determinan cómo cambia el estado en respuesta a una acción.
- Definir el estado inicial: Usar un objeto clave-valor.
const initialState = {
pokemons: [],
};
- Crear el reducer: Usa una función switch para manejar diferentes tipos de acciones.
import { SET_POKEMONS } from '../actions/types';
const pokemonsReducer = (state = initialState, action) => {
switch (action.type) {
case SET_POKEMONS:
return { ...state, pokemons: action.payload };
default:
return state;
}
};
export default pokemonsReducer;
¿Cómo integrar el Store de Redux en React?
El último paso es envolver la aplicación con el Provider
de react-redux
.
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import pokemonsReducer from './reducers';
import App from './App';
const store = createStore(pokemonsReducer);
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
¿Qué hacer si algo no funciona?
Si la aplicación no muestra los datos esperados, un console.log
es una herramienta valiosa para verificar que la lista de pokémons se actualiza correctamente. Asegúrate de revisar que todas las conexiones entre acciones, reducers y componentes están correctamente configuradas.
¿Por qué usar Redux?
Redux proporciona un manejo del estado centralizado, ayudando a desarrollar aplicaciones más predecibles, fáciles de depurar y probar. Si bien este tutorial cubre lo esencial, recuerda que Redux tiene otras formas, como el Redux Toolkit
, que veremos más adelante.
¡Continúa explorando y dominando Redux para hacer tus aplicaciones React más escalables y eficientes!