El enrutamiento en Angular es un mecanismo que gestiona la navegación entre diferentes componentes dentro de tu aplicación. Permite mostrar diferentes vistas basadas en la URL en el navegador, creando la ilusión de múltiples páginas, pero sin realizar recargas completas del navegador, lo que mejora la experiencia del usuario.
Componentes clave del Enrutamiento en Angular:
Configuración del Enrutamiento:
El enrutamiento se configura típicamente en un módulo separado llamado AppRoutingModule
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { IntroduccionComponent } from './introduccion/introduccion.component';
import { EntornoComponent } from './entorno/entorno.component';
import { ComponentesComponent } from './componentes/componentes.component';
// Importa todos los componentes que usarás en las rutas
const routes: Routes = [
{ path: 'introduccion', component: IntroduccionComponent }, // Ruta para la introducción
{ path: 'entorno', component: EntornoComponent }, // Ruta para el entorno
{ path: 'componentes', component: ComponentesComponent },
// ... define más rutas para otros componentes
{ path: '', redirectTo: '/introduccion', pathMatch: 'full' }, // Ruta por defecto (importante)
{ path: '**', redirectTo: '/introduccion' } // Ruta comodín (para rutas no encontradas)
];
@NgModule({
imports: [RouterModule.forRoot(routes)], // Importante: forRoot para el módulo principal
exports: [RouterModule]
})
export class AppRoutingModule { }
Uso de routerLink en los templates:
Para crear enlaces de navegación, se utiliza la directiva routerLink
<nav>
<a routerLink="/introduccion">Introducción</a>
<a routerLink="/entorno">Entorno</a>
<a routerLink="/componentes">Componentes</a>
</nav>
El valor que se le pasa a routerLink debe coincidir con el path definido en el array routes
Uso de router-outlet:
La directiva <router-outlet> marca el lugar en el template donde se mostrará el componente correspondiente a la ruta actual:
<div>
<router-outlet></router-outlet>
</div>
Importar AppRoutingModule en AppModule:
Finalmente, debes importar AppRoutingModule en el array imports de AppModule:
// hijo.component.ts
import { AppRoutingModule } from './app-routing.module';
@NgModule({
imports: [
// ... otros módulos
AppRoutingModule // Importa el módulo de enrutamiento
],
// ...
})