Angular 21 de Cero a Experto / Servicios y DI
Reto: el BolsilloStore, cerebro reactivo de la app
Vas a construir el BolsilloStore completo: el servicio-store con señales que será la fuente
de verdad de "Mi Bolsillo" durante todo el curso. Estado privado, lecturas de solo lectura,
derivados con computed, acciones controladas y un filtro. Es el patrón que usarás una y
otra vez en Angular real —hoy lo dominas construyéndolo y probándolo en vivo—.
Reto
Un store de señales con estado, derivados y acciones
Qué debes construir
Un BolsilloStore (clase, como lo sería un @Injectable) con:
- Estado privado: una señal
_gastos(lista) y una señal_filtro(categoría activa, inicial"todos"). - Lecturas de solo lectura:
gastos(todos) yfiltro. - Derivados con
computed:total(suma de todos),gastosVisibles(según el filtro),totalVisible(suma de los visibles) yporCategoria(un objeto con el total por categoría). - Acciones:
agregar(nombre, valor, categoria),eliminar(id)yfiltrarPor(cat).
El estado nunca se muta desde fuera: solo a través de las acciones.
Reglas
- Estado privado, expuesto solo con lecturas de solo lectura y derivados.
- Todo lo que se pueda calcular (totales, visibles, agrupados) va en
computed, no en estado. - Las acciones son la única vía de cambio, y usan actualizaciones inmutables (
[...gs, x],filter, etc.).
30:00
Cuando estés listo, arranca el reloj.
Qué sigue
Terminaste el módulo de servicios y DI: tienes el store que dará vida a "Mi Bolsillo". Ahora tu app necesita PÁGINAS —una para la lista, otra para el detalle de un gasto, otra para las estadísticas— y una forma de navegar entre ellas. El próximo módulo es el ROUTER de Angular: rutas, parámetros como señales, carga perezosa y guards. Vas a convertir tus componentes en una aplicación de verdad.