CodeForge

Angular 21 de Cero a Experto / Routing

Reto: el mapa de rutas de Mi Bolsillo con guard

Reto35 min60 XP

Vas a diseñar el sistema de navegación completo de "Mi Bolsillo": el mapa de rutas (con parámetros, lazy y protección) y —para entenderlo por dentro— un mini-emparejador de URLs que resuelve qué ruta corresponde a una dirección y aplica un guard. Es el sello "construye tu versión" aplicado al router: cuando funcione, sabrás exactamente qué hace Angular al navegar.

Reto

Rutas protegidas y un emparejador de URLs

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

Qué debes construir

Dos partes:

  1. El mapa de rutas de Angular (código exacto): '' (lista), 'gasto/:id' (detalle, con parámetro), 'estadisticas' (lazy), 'admin' (lazy + protegida por authGuard) y '**' (404). Con provideRouter(routes, withComponentInputBinding()).
  2. Un mini-emparejador en vivo: dada una URL como /gasto/8, encuentra la ruta que coincide, extrae los parámetros ({ id: "8" }), y aplica el guard si la ruta lo tiene (dejando pasar o redirigiendo). Es el corazón de lo que hace el router.

Reglas

  • El emparejador debe soportar segmentos dinámicos :param y extraer sus valores.
  • El comodín ** coincide con cualquier cosa (404) y va al final.
  • El guard decide con un estado de sesión: si la ruta es protegida y no hay sesión, redirige.

35:00

Cuando estés listo, arranca el reloj.

Qué sigue

Terminaste el módulo de routing: tu app es navegable, con páginas protegidas, parámetros reactivos y carga perezosa. Ahora las páginas necesitan CAPTURAR datos del usuario: crear un gasto, editarlo, validar la entrada. El próximo módulo son los FORMULARIOS de Angular —template-driven y reactivos, tipados, con validaciones—, la puerta por la que entran los datos a tu aplicación.