Introducci贸n a React y Preparaci贸n del Entorno
Aprende React: Desarrollo Web y Mobile Eficiente y Escalable
Fundamentos de Componentes y JSX
Creaci贸n de Componentes con JavaScript y React
Creaci贸n de Componentes Reutilizables con Props en React
Quiz: Fundamentos de Componentes y JSX
Manejo del Estado y Hooks B谩sicos
Estado Local en React: Uso de useState para Contadores
Creaci贸n y manejo de estados en un Toggle Button con React
Eventos y manejo de estado en React: name form interactivo
Uso de useEffect para Manejar Efectos Secundarios en React
Quiz: Manejo del Estado y Hooks B谩sicos
Estilizaci贸n de Componentes
Estilos en React: CSS, SaaS y M贸dulos CSS
Estilos en L铆nea en React: Uso y Mejores Pr谩cticas
Creaci贸n de Botones Reactivos con Styled Components en React
Instalaci贸n y Uso de Tailwind CSS en Proyectos Web
Quiz: Estilizaci贸n de Componentes
Trabajo con Datos y APIs
Creaci贸n de Componentes con Datos Est谩ticos en React
Creaci贸n de un Componente User List con Fetch en React
Manejo de Errores y Carga en Fetch para Componentes React
Optimizaci贸n de Fetch con useEffect y Dependencias en React
Quiz: Trabajo con Datos y APIs
Componentes Avanzados y Estado Global
Manejo de estados complejos en React con useReducer
Context API en React: Manejo de Estados Globales y Proveedores
Creaci贸n de Hooks Personalizados en React para Contadores Reutilizables
Optimizaci贸n de Componentes en React con React.memo y Hooks
Quiz: Componentes Avanzados y Estado Global
Introducci贸n a TypeScript en React
Componentes con TypeScript en React: Tipado de Props y Funciones
Tipado de Estados y Funciones en TypeScript para React
Tipado de useReducer y Context API en TypeScript
Quiz: Introducci贸n a TypeScript en React
Nuevas Caracter铆sticas de React 19
Novedades y Mejoras en React 19 para Desarrolladores
Fundamentos y Actualizaci贸n Continua en React
No tienes acceso a esta clase
隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera
La gesti贸n de estados globales en React es una habilidad fundamental para desarrolladores que buscan crear aplicaciones escalables y mantenibles. Context API ofrece una soluci贸n elegante para compartir datos entre componentes sin necesidad de pasar props manualmente a trav茅s de m煤ltiples niveles. En este art铆culo, exploraremos c贸mo implementar un sistema de temas (claro/oscuro) utilizando Context API, una herramienta poderosa que permite la comunicaci贸n eficiente entre componentes.
Un estado global en React nos permite compartir datos entre componentes sin importar d贸nde se encuentren en el 谩rbol de componentes. Esto es especialmente 煤til cuando:
Context API es una herramienta nativa de React que nos permite crear estos estados globales de manera sencilla. A diferencia de soluciones como Redux, Context API viene integrado en React y es ideal para casos de uso m谩s simples como el manejo de temas, autenticaci贸n o preferencias de usuario.
Para implementar un sistema de temas (claro/oscuro) con Context API, necesitamos seguir tres pasos principales:
Veamos cada uno de estos pasos en detalle:
El primer paso es importar createContext
de React y crear nuestro contexto:
import { createContext, useState } from 'react';
const ThemeContext = createContext();
A continuaci贸n, necesitamos crear un proveedor que encapsule el estado y proporcione los m茅todos para manipularlo:
function ThemeProvider({ children }) {
const [theme, setTheme] = useState('light');
const toggleTheme = () => {
setTheme(prevTheme => prevTheme === 'light' ? 'dark' : 'light');
};
return (
<ThemeContext.Provider value={{ theme, toggleTheme }}>
{children}
</ThemeContext.Provider>
);
}
Este proveedor tiene varias caracter铆sticas importantes:
theme
) inicializado como 'light'toggleTheme
para alternar entre temasProvider
del contextovalue
El par谩metro children
es crucial, ya que permite que el proveedor envuelva cualquier componente que necesite acceder al contexto.
Una vez que tenemos nuestro contexto y proveedor, podemos crear componentes que consuman este contexto. Para ello, utilizamos el hook useContext
:
import { useContext } from 'react';
function ThemeButton() {
const { theme, toggleTheme } = useContext(ThemeContext);
return (
<button
onClick={toggleTheme}
style={{
backgroundColor: theme === 'light' ? '#ffffff' : '#333333',
color: theme === 'light' ? '#000000' : '#ffffff'
}}
>
Cambiar tema
</button>
);
}
Este componente:
theme
y toggleTheme
del contexto usando useContext
Para que todo funcione correctamente, debemos envolver nuestra aplicaci贸n (o la parte que necesita acceso al contexto) con el proveedor:
function App() {
return (
<ThemeProvider>
<div className="App">
<ThemeButton />
{/* Otros componentes */}
</div>
</ThemeProvider>
);
}
De esta manera, cualquier componente dentro de ThemeProvider
puede acceder al contexto del tema.
El uso de Context API para manejar estados globales ofrece varias ventajas:
Context API es ideal para casos de uso como:
La implementaci贸n que hemos visto demuestra c贸mo podemos crear un sistema de temas completo con pocas l铆neas de c贸digo, manteniendo nuestros componentes limpios y enfocados en su responsabilidad principal.
La gesti贸n de estados globales es una habilidad fundamental en el desarrollo con React. Context API nos proporciona una herramienta poderosa y flexible para compartir datos entre componentes sin complicaciones innecesarias. 驴Has implementado Context API en tus proyectos? Comparte tu experiencia en los comentarios.
Aportes 10
Preguntas 1
驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?