React 19 de Cero a Experto / Estado
Reto: Mi Bolsillo interactivo con estado
La "Mi Bolsillo" del módulo 1 era una foto estática. Hoy cobra vida: agregar gastos con un formulario controlado, borrarlos, filtrarlos por categoría, y ver el total actualizarse solo. Es la misma app que hiciste en JavaScript puro (SC-02), pero ahora DECLARATIVA —describes la UI para cada estado y React se encarga del resto—. Vas a sentir en carne propia por qué React cambió el desarrollo de interfaces.
Reto
Mi Bolsillo interactivo
Qué debes construir
Una app de gastos interactiva y completa con estado. Debe permitir:
- Agregar un gasto con un formulario controlado (nombre, valor, categoría) que valida y limpia tras enviar.
- Borrar un gasto con su botón (por delegación de la lista).
- Filtrar la lista por categoría con un
<select>(todas / comida / transporte / ocio). - Total en vivo que refleja los gastos (el total general, no el filtrado).
- Todo con estado: el array de gastos y los campos del formulario viven en
useState(ouseReducer).
Reglas
- El array de gastos es la fuente de verdad; las actualizaciones son INMUTABLES (
[...],filter, nuncapush/mutación). - Los inputs son controlados (
value+onChange). - Todo tipado con TypeScript (props, estado, acciones).
- La
keyde la lista es estable (g.id).
35:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 2 conquistado: el estado ya no tiene secretos —useState, snapshots, inmutabilidad,
lifting, useReducer—. Tu "Mi Bolsillo" es interactiva de verdad. Pero vive aislada del mundo:
no carga datos de una API, no guarda en localStorage, no usa temporizadores. El módulo 3 abre
esa puerta con useEffect —cómo React se sincroniza con sistemas externos— y los custom hooks
para empaquetar lógica reutilizable.