Estado Global en React: Uso de Context y Provider para Notificaciones
Clase 13 de 31 • Curso de React Avanzado
Resumen
¿Cómo manejar el estado global en React con Provider y Context?
En el universo de React, existen diferentes maneras de manejar el estado de la aplicación, uno de los aspectos más cruciales para lograr un desarrollo eficiente y funcional. La implementación más común es mediante el uso del estado local, pero cuando hablamos de una aplicación de mayor envergadura, el estado global se convierte en una necesidad. Aquí es donde entra en juego el uso de React Context y el patrón Provider. Este enfoque permitirá compartir datos y funciones entre varios componentes sin tener que pasar props de un componente a otro.
¿Cómo configurar un proyecto con Bit y React?
Para iniciar el desarrollo de nuestra aplicación con React y utilizar el estado global, es esencial configurar correctamente nuestro entorno de trabajo. Siguiendo los pasos a continuación, podrás tener tu proyecto listo en poco tiempo:
- Creación del proyecto: Utiliza el comando
npm create bit myReactContextApp
para iniciar el proyecto. - Selecciona las tecnologías: Al configurar, elige React con TypeScript.
- Accede al proyecto: Ingresa al directorio del proyecto con
cd myReactContextApp
. - Instala las dependencias necesarias: Ejecuta
npm install
. - Verifica tu ambiente de desarrollo: Usa
npm run dev
para correr el servidor local y revisa el proyecto inicial en el navegador en la ruta que te indica.
¿Cómo crear un proveedor de estado global?
El uso del patrón Provider y React Context facilita compartir estados o funciones entre los componentes de tu aplicación. A continuación, te presento los pasos para crear un Provider para gestionar las notificaciones en la aplicación.
- Estructura del proyecto: En la carpeta
src
(source), crea una nueva carpeta llamadacontext
. - Creación del Notification Context: Dentro de esta carpeta, crea un archivo llamado
notificationContext.jsx
. - Implementación del Provider:
- Define una función
NotificationProvider
que gestionará el estado global. - Utiliza
useState
para crear un estado local que muestre u oculte mensajes de notificación. - Implementa funciones para mostrar (
showNotification
) y ocultar (hideNotification
) las notificaciones. - Exporta el contexto con
createContext
y define el tipo de datos que gestionará.
- Define una función
import React, { useState, createContext } from 'react';
// Creación del contexto
export const NotificationContext = createContext(undefined);
export const NotificationProvider = ({ children }) => {
const [message, setMessage] = useState(null);
const showNotification = (msg) => {
setMessage(msg);
setTimeout(() => hideNotification(), 3000);
};
const hideNotification = () => setMessage(null);
return (
<NotificationContext.Provider value={{ message, showNotification, hideNotification }}>
{children}
</NotificationContext.Provider>
);
};
¿Qué consideraciones tener al usar Context?
- Uso de Typescript: Al utilizar TypeScript, puedes definir tipos de datos que ayudarán a mantener el código más legible y fácil de gestionar.
- Renderización de componentes: El
NotificationProvider
debe envolver la aplicación o aquellos componentes que necesiten acceso al estado global. - Estructura de retorno: Además de retornar valores específicos, asegúrate de que el Provider pueda renderizar hijos de cualquier componente en su interior.
¿Cómo utilizar el contexto en los componentes?
Una vez establecido el Provider, es crucial que los componentes puedan acceder a este estado. Para lograrlo, simplemente utiliza el hook useContext
. Aunque en esta clase se enfocó en la creación del contexto y Provider, el siguiente paso será integrar un custom hook y componentes que puedan gestionar las notificaciones.
¡La implementación de un estado global te permitirá llevar tus aplicaciones React al siguiente nivel y manejar interacciones complejas de manera eficiente! Asegúrate de practicar y experimentar con diferentes estructuras y personalizaciones, esto te ayudará a fortalecer tu comprensión y tus habilidades en React.