CodeForge

Angular 21 de Cero a Experto / Servicios y DI

Reto: el BolsilloStore, cerebro reactivo de la app

Reto30 min60 XP

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

Media30 min60 XP(×2 sin mirar la solución)

Qué debes construir

Un BolsilloStore (clase, como lo sería un @Injectable) con:

  1. Estado privado: una señal _gastos (lista) y una señal _filtro (categoría activa, inicial "todos").
  2. Lecturas de solo lectura: gastos (todos) y filtro.
  3. Derivados con computed: total (suma de todos), gastosVisibles (según el filtro), totalVisible (suma de los visibles) y porCategoria (un objeto con el total por categoría).
  4. Acciones: agregar(nombre, valor, categoria), eliminar(id) y filtrarPor(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.