En este tema, aprenderemos cómo configurar rutas en una aplicación Angular. El enrutamiento es una característica esencial en aplicaciones de una sola página (SPA) que permite la navegación entre diferentes vistas o componentes sin recargar la página completa.
Objetivos
- Comprender la importancia del enrutamiento en Angular.
- Configurar rutas básicas en una aplicación Angular.
- Navegar entre diferentes componentes utilizando el enrutador de Angular.
Conceptos Clave
- RouterModule: Módulo que proporciona las funcionalidades de enrutamiento.
- Routes: Arreglo de objetos de ruta que define las rutas de la aplicación.
- RouterOutlet: Directiva que actúa como un marcador de posición donde se renderizan los componentes en función de la ruta actual.
- RouterLink: Directiva que se utiliza para enlazar a diferentes rutas.
Paso a Paso
- Importar RouterModule y Routes
Primero, necesitamos importar RouterModule y Routes desde @angular/router en nuestro módulo principal (generalmente app.module.ts).
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent }
];
@NgModule({
declarations: [
AppComponent,
HomeComponent,
AboutComponent
],
imports: [
BrowserModule,
RouterModule.forRoot(routes) // Configuración de rutas
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
- Definir las Rutas
En el ejemplo anterior, hemos definido dos rutas:
- La ruta raíz (
'') que carga elHomeComponent. - La ruta
aboutque carga elAboutComponent.
- Configurar RouterOutlet
En el archivo de plantilla principal (generalmente app.component.html), necesitamos agregar la directiva RouterOutlet para indicar dónde se deben renderizar los componentes en función de la ruta actual.
<nav> <a routerLink="/">Home</a> <a routerLink="/about">About</a> </nav> <router-outlet></router-outlet>
- Navegar entre Rutas
Utilizamos la directiva RouterLink para crear enlaces de navegación. En el ejemplo anterior, hemos creado enlaces para las rutas Home y About.
Ejemplo Completo
A continuación, se muestra un ejemplo completo de una aplicación Angular con enrutamiento básico.
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent }
];
@NgModule({
declarations: [
AppComponent,
HomeComponent,
AboutComponent
],
imports: [
BrowserModule,
RouterModule.forRoot(routes)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }app.component.html
<nav> <a routerLink="/">Home</a> <a routerLink="/about">About</a> </nav> <router-outlet></router-outlet>
home.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-home',
template: `<h1>Home Component</h1>`
})
export class HomeComponent { }about.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-about',
template: `<h1>About Component</h1>`
})
export class AboutComponent { }Ejercicio Práctico
Ejercicio 1: Añadir una Nueva Ruta
- Crea un nuevo componente llamado
ContactComponent. - Añade una nueva ruta para el
ContactComponentcon el pathcontact. - Actualiza la navegación en
app.component.htmlpara incluir un enlace a la nueva ruta.
Solución
- Crear el componente
ContactComponent:
import { Component } from '@angular/core';
@Component({
selector: 'app-contact',
template: `<h1>Contact Component</h1>`
})
export class ContactComponent { }- Añadir la nueva ruta en
app.module.ts:
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'contact', component: ContactComponent } // Nueva ruta
];- Actualizar la navegación en
app.component.html:
<nav> <a routerLink="/">Home</a> <a routerLink="/about">About</a> <a routerLink="/contact">Contact</a> <!-- Nuevo enlace --> </nav> <router-outlet></router-outlet>
Resumen
En esta lección, hemos aprendido cómo configurar rutas en una aplicación Angular. Hemos cubierto los conceptos básicos del enrutamiento, incluyendo la configuración de RouterModule, la definición de rutas, el uso de RouterOutlet y RouterLink para la navegación. Además, hemos realizado un ejercicio práctico para reforzar los conceptos aprendidos. En la próxima lección, exploraremos los parámetros de ruta y cómo utilizarlos para pasar datos entre componentes.
Curso de Angular 2+
Módulo 1: Introducción a Angular
- ¿Qué es Angular?
- Configuración del Entorno de Desarrollo
- Tu Primera Aplicación Angular
- Arquitectura de Angular
Módulo 2: Conceptos Básicos de TypeScript
- Introducción a TypeScript
- Variables y Tipos de Datos en TypeScript
- Funciones y Funciones Flecha
- Clases e Interfaces
Módulo 3: Componentes y Plantillas
- Creación de Componentes
- Plantillas de Componentes
- Estilos de Componentes
- Interacción entre Componentes
Módulo 4: Directivas y Pipes
Módulo 5: Servicios e Inyección de Dependencias
- Introducción a los Servicios
- Creación y Uso de Servicios
- Inyección de Dependencias
- Inyectores Jerárquicos
Módulo 6: Enrutamiento y Navegación
Módulo 7: Formularios en Angular
- Formularios Basados en Plantillas
- Formularios Reactivos
- Validación de Formularios
- Formularios Dinámicos
Módulo 8: Cliente HTTP y Observables
- Introducción al Cliente HTTP
- Realizando Solicitudes HTTP
- Manejo de Respuestas HTTP
- Uso de Observables
Módulo 9: Gestión de Estado
- Introducción a la Gestión de Estado
- Uso de Servicios para la Gestión de Estado
- NgRx Store
- NgRx Effects
