Angular
Tutorial Angular: Routes sin módulos en Angular
Angular: Aprende a configurar rutas sin módulos en Angular 17. Simplifica el enrutado de tu aplicación con ejemplos prácticos y una guía paso a paso.
Aprende Angular GRATIS y certifícateLas Routes sin módulos se refieren a la definición de rutas en una aplicación Angular sin encapsular estas rutas dentro de un módulo específico de Angular.
Conceptos fundamentales de las rutas en Angular 17
Generalmente, en aplicaciones Angular más grandes, se utilizan módulos para organizar el código relacionado en bloques funcionales y se definen rutas específicas del módulo dentro de esos módulos.
En Angular 17, la configuración de rutas se ha simplificado gracias a la capacidad de definir rutas directamente en un archivo de configuración (app.routes.ts
), sin la necesidad de un módulo de enrutamiento.
Esta aproximación reduce la complejidad y mejora la legibilidad del código.
Las rutas son esenciales para cualquier aplicación de página única (SPA), ya que permiten la navegación entre diferentes componentes sin recargar la página.
Ejemplo práctico: Configuración de rutas
Vamos a definir un conjunto de rutas para una aplicación de ejemplo que incluye:
- una página de inicio (Home)
- una página de "No Encontrado" (Not Found)
- un listado (List)
- detalles de un elemento (Detail)
- formulario para crear y editar (Form)
También incluiremos una ruta comodín (**
) para capturar cualquier URL no declarada.
Paso 1: Generación de la aplicación y componentes
Para comenzar, generamos una nueva aplicación con Angular CLI utilizando el enfoque "standalone", que es el recomendado en Angular 17+. Luego, agregamos los componentes necesarios:
# Crear una nueva aplicación Angular standalone sin SSR
ng new routing-app --standalone --ssr=false
# Navegar al directorio de la aplicación
cd routing-app
# Generar componentes standalone
ng generate component home --standalone
ng generate component not-found --standalone
ng generate component restaurant-list --standalone
ng generate component restaurant-detail --standalone
ng generate component restaurant-form --standalone
La bandera --standalone
en cada comando de generación de componente asegura que se creen como componentes independientes, siguiendo las mejores prácticas de Angular 17+.
Paso 2: Definición de rutas en app.routes.ts
Las rutas se configuran utilizando un array de objetos Route
, que se exporta desde el archivo app.routes.ts
. Cada objeto Route
especifica como mínimo dos propiedades principales:
path
: Una cadena que define la URL para esa ruta.component
: El componente que se debe mostrar cuando se accede a esa ruta.
Además, pueden incluirse otras propiedades opcionales como redirectTo
, children
para rutas anidadas, o canActivate
para guardias de ruta.
import { Routes } from '@angular/router';
import { RestaurantListComponent } from './restaurant-list/restaurant-list.component';
import { RestaurantFormComponent } from './restaurant-form/restaurant-form.component';
import { RestaurantDetailComponent } from './restaurant-detail/restaurant-detail.component';
import { NotFoundComponent } from './not-found/not-found.component';
import { HomeComponent } from './home/home.component';
export const routes: Routes = [
{
path: '', // Ruta vacía
component: HomeComponent
},
{
path: 'restaurantes',
component: RestaurantListComponent
},
{
path: 'restaurantes/nuevo',
component: RestaurantFormComponent
},
{
path: 'restaurantes/:id/detalle',
component: RestaurantDetailComponent
},
{
path: 'not-found-404',
component: NotFoundComponent
},
{
path: '**', // Ruta comodín que atrapa cualquier url que se escriba
redirectTo: '/not-found-404'
}
];
Paso 3: Uso de router-outlet
y routerLink
Una vez definidas las rutas de la aplicación Angular, el siguiente paso es integrarlas efectivamente para que los usuarios puedan navegar entre los distintos componentes que se han preparado. Este proceso se realiza en dos etapas principales: añadiendo enlaces de navegación y actualizando la plantilla del componente principal.
En el componente principal (AppComponent
), utilizamos <router-outlet>
para indicar dónde se deben renderizar los componentes de las rutas activas. Además, usamos routerLink
para crear enlaces de navegación entre las diferentes rutas.
<!-- app.component.html -->
<h1>Aplicación de Restaurante</h1>
<nav>
<ul>
<li><a routerLink="/">Inicio</a></li>
<li><a routerLink="/restaurantes">Listado de Restaurantes</a></li>
<li><a routerLink="/restaurantes/nuevo">Añadir Restaurante</a></li>
</ul>
</nav>
<router-outlet></router-outlet>
Este fragmento HTML configura un menú de navegación con enlaces a las páginas principales de la aplicación y utiliza <router-outlet>
para mostrar el componente correspondiente según la ruta seleccionada. De esta manera, se proporciona a los usuarios una experiencia de navegación fluida y coherente, aprovechando las potentes características de enrutamiento que Angular ofrece.
Es imprescindible importar RouterOutlet
y RouterLink
en app.component.ts
en imports:
Sin modificaciones de estilo y con el HTML básico veríamos lo siguiente en el navegador:
Ejercicios de esta lección Routes sin módulos en Angular
Evalúa tus conocimientos de esta lección Routes sin módulos en Angular con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Signals en Angular
Guards funcionales
Decodificar JWT en Angular
Servicio con HttpClient
Ciclo de vida de componentes en Angular
Gestión de productos de Fake Store API
Data binding en Angular
Routes sin módulos en Angular
Router en Angular
Instalación de Angular
Route Guards basados en interfaces
La directiva @if en Angular
Formularios reactivos en Angular
Servicios en Angular
Interceptor funcional
Servicio con Array
La directiva @for en Angular
Interceptores HTTP
Componentes standalone true
Formularios con ngModel en Angular
Routes en Angular
Comunicación entre componentes Angular
Parámetros en rutas con ActivatedRoute
CRUD de Restaurantes y Platos
Tablas en Angular Material
Formulario de registro de usuarios
Instalación y uso de NgBoostrap
Desarrollo de componentes Angular
JWT en Angular
Formularios reactivos en Angular
Formularios en Angular Material
Layout con Angular Material
Effects en Angular
Data binding
HttpClient en servicios de Angular
Desarrollo de módulos Angular
Comandos Angular CLI
Subir archivo en formularios
La directiva routerLink en Angular
Todas las lecciones de Angular
Accede a todas las lecciones de Angular y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Instalación Angular
Introducción Y Entorno
Comandos Angular Cli
Introducción Y Entorno
Desarrollo De Componentes Angular
Componentes
Data Binding En Angular
Componentes
Ciclo De Vida De Componentes En Angular
Componentes
Comunicación Entre Componentes Angular
Componentes
La Directiva @If En Angular
Componentes
La Directiva @For En Angular
Componentes
Componentes Standalone
Componentes
Desarrollo De Módulos Angular
Módulos
Routes En Angular
Enrutado Y Navegación
Router En Angular
Enrutado Y Navegación
La Directiva Routerlink En Angular
Enrutado Y Navegación
Parámetros En Rutas Con Activatedroute
Enrutado Y Navegación
Routes Sin Módulos En Angular
Enrutado Y Navegación
Servicios En Angular
Servicios E Inyección De Dependencias
Httpclient En Servicios De Angular
Servicios E Inyección De Dependencias
Formularios Con Ngmodel En Angular
Formularios
Formularios Reactivos En Angular
Formularios
Subir Archivo En Formularios
Formularios
Layout Con Angular Material
Integración Con Angular Material
Tablas En Angular Material
Integración Con Angular Material
Formularios En Angular Material
Integración Con Angular Material
Instalación Y Uso De Ngboostrap
Integración Con Bootstrap Css
Signals En Angular
Signals Y Reactividad
Effects En Angular
Signals Y Reactividad
Route Guards Basados En Interfaces
Autenticación Y Autorización
Guards Funcionales
Autenticación Y Autorización
Interceptores Http Basados En Interfaz
Autenticación Y Autorización
Interceptores Http Funcionales
Autenticación Y Autorización
Seguridad Jwt En Angular
Autenticación Y Autorización
Decodificar Tokens Jwt En Angular
Autenticación Y Autorización
Certificados de superación de Angular
Supera todos los ejercicios de programación del curso de Angular y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el nuevo enfoque de enrutamiento en Angular 17.
- Familiarizarse con la creación y configuración de un archivo
app.routes.ts
para definir todas las rutas de la aplicación. - Aprender a configurar rutas que incluyan parámetros dinámicos para manejar vistas de detalle y entender el uso de rutas comodín.
- Uso efectivo de
router-outlet
yrouterLink
.