React 19 de Cero a Experto / Estado global
Reto: Mi Bolsillo con estado global
Cierras el módulo de estado global montando una "Mi Bolsillo" donde el estado vive en un STORE COMPARTIDO y varios componentes independientes —formulario, lista, total, filtro— lo leen y lo cambian SIN pasarse una sola prop ni sufrir prop drilling. Usarás el patrón store + hook que construiste en la lección de Zustand, aplicado a una app completa. Es la culminación de todo el módulo: el estado en su sitio, los componentes desacoplados.
Reto
Mi Bolsillo global
Qué debes construir
Una "Mi Bolsillo" cuyo estado vive en un store global compartido:
- Un store (con tu
crearStore+useStore, o con Context +useReducer) que guardegastosyfiltro, con accionesagregar,borrarysetFiltro. - Componentes independientes que consuman el store sin recibir props entre ellos: un
Formpara agregar, unaLista(que muestra los gastos filtrados), unFiltro(select de categoría), y unResumen(total + conteo). - Sin prop drilling: ningún componente pasa el estado a otro; cada uno lee del store lo que necesita.
- Lo derivado se calcula: la lista filtrada y el total se DERIVAN en el render, no se guardan.
Reglas
- El store vive FUERA de los componentes; las actualizaciones son inmutables.
- Cada componente se suscribe SOLO a la parte del store que usa (selector).
- Todo tipado con TypeScript; categorías como unión de literales (
"comida" | "transporte" | "ocio").
35:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 6 conquistado: dominas el estado global —prop drilling, Context, Zustand, XState— y sobre todo el CRITERIO para elegir cada uno. Ya tienes componentes, estado, efectos, datos y estado global: las piezas de una app real. Lo que falta es unirlas en PANTALLAS navegables. El módulo 7 trae el ROUTING con React Router: rutas, layouts anidados, parámetros de URL y rutas protegidas.