Angular 21 de Cero a Experto / Fundamentos
Reto: Mi Bolsillo, tu primer árbol de componentes
Es hora de juntar todo lo del módulo en una pieza real. Vas a construir el esqueleto de "Mi Bolsillo" —la app de gastos que acompaña todo el curso— como un árbol de componentes standalone con inputs, outputs y el nuevo control flow. La estructura de Angular la escribirás en código (comentado y exacto); la LÓGICA de datos la probarás en vivo aquí mismo.
Reto
El esqueleto de Mi Bolsillo en componentes
Qué debes construir
Un árbol de tres componentes standalone:
TarjetaGastoComponent— recibe unnombrey unvalorconinput(), los muestra, y tiene un botón que emite unoutput()borrarcon eliddel gasto.ListaGastosComponent— recibe un array de gastos, los pinta con@for(usandotrack) y@emptypara el caso vacío, y escucha elborrarde cada tarjeta.ResumenComponent— recibe el array y muestra el total y la cantidad de gastos.
Y por separado, la lógica pura de datos en TypeScript que estos componentes usarían: funciones para calcular el total, filtrar por categoría y encontrar el gasto más caro. Esa lógica la ejecutas en vivo en el playground de abajo.
Reglas
- Usa la sintaxis moderna:
input()/output(), control flow@for/@if/@empty, standalone (nada deNgModule,*ngForni@Input()decorador). - El
@fordebe usartrackcon un id estable. - La lógica de datos debe ser funciones puras tipadas (sin depender de Angular).
30:00
Cuando estés listo, arranca el reloj.
Qué sigue
Construiste tu primer árbol de componentes y separaste la lógica de la vista. Notaste que el
total lo calculas "a mano" cada vez —funciona, pero no es reactivo—. El próximo módulo
resuelve eso de raíz: signals. Vas a envolver ese total en un computed() que se
recalcula solo, y a construir tu propio sistema de señales desde cero para entender la magia
por dentro.