Angular Routing 是 Angular 应用程序中一个非常重要的概念,它允许开发者创建复杂的单页面应用程序(SPA)。下面是一些关于 Angular Routing 的基础知识。
基本概念
Angular Router 是 Angular 的一个内置模块,它负责处理应用程序中的路由。路由定义了应用程序中的不同页面(组件)以及如何在不同页面之间导航。
路由配置
在 Angular 应用程序中,路由通常在 app-routing.module.ts
文件中进行配置。
const routes: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'about', component: AboutComponent },
// 更多路由...
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
导航
在 Angular 应用程序中,可以通过编程方式或模板语法来导航到不同的路由。
this.router.navigate(['/about']);
或者,在 HTML 模板中使用 <router-link>
指令:
<a routerLink="/about">About</a>
动态路由参数
Angular 路由支持动态路由参数,这允许应用程序根据 URL 参数渲染不同的组件。
const routes: Routes = [
{ path: 'user/:id', component: UserComponent }
];
@NgModule({
// ...
})
export class AppRoutingModule { }
在这个例子中,user/:id
路径将匹配任何以 /user/
开头并跟有一个数字的路由。
导航守卫
Angular 提供了导航守卫,允许开发者控制路由的访问权限。
@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
canActivate(route: ActivatedRouteSnapshot): boolean {
// 检查用户是否已认证
return true; // 或者返回 false 来阻止导航
}
}
在路由配置中使用守卫:
const routes: Routes = [
{ path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] }
];
更多关于 Angular Routing 的信息,请访问 Angular 官方文档。
Angular Routing Diagram