Angular 21 de Cero a Experto / Estado a gran escala
Reto: un SignalStore de features para Mi Bolsillo
Este reto integra todo el módulo: vas a construir un SignalStore completo para "Mi Bolsillo"
—con estado, derivados, acciones y helpers de entidades— usando el patrón de composición
with* que aprendiste, y probándolo en vivo. Cuando funcione, entenderás por dentro cómo NgRx
SignalStore organiza el estado de una feature, y tendrás el store definitivo de tu app.
Reto
Un mini-SignalStore componible con entidades
Qué debes construir
Un signalStore mínimo (el motor) y con él, un BolsilloStore que tenga:
withState:gastos(colección de entidades por id),filtro(categoría activa),presupuesto.withComputed:total,saldo,gastosVisibles(según filtro) yporCategoria.withMethods:agregar,eliminar,filtrarPor,fijarPresupuesto, todos conpatchState.withEntities(tu propio bloque): un helper reutilizable que maneje la colección por id conaddEntity/removeEntity, para no repetir elfilter/spread.
Reglas
- El motor
signalStoredebe COMPONER bloqueswith*(cada uno añade al store). patchStateactualiza solo las claves que recibe, inmutablemente.- Los derivados deben reaccionar solos a los cambios de estado.
40:00
Cuando estés listo, arranca el reloj.
Qué sigue
Terminaste el módulo de estado a gran escala: sabes clasificar el estado, estructurarlo con SignalStore, organizar la app por features y usar facades con criterio. Tu app tiene una columna vertebral de estado sólida. El próximo módulo la lleva a la última frontera: el tiempo real —WebSockets, Socket.io, streams en vivo— para que "Mi Bolsillo" se actualice al instante cuando algo cambia, incluso desde otro dispositivo. La antesala del proyecto final.