用途:@angular/router 负责 Angular 单页应用的路由配置与导航,管理 URL 与组件映射、权限控制、数据预取及懒加载,适用于需要页面切换、路由守卫和按需加载模块的 Angular 项目。
主要能力:支持懒加载路由、守卫、解析器、通配符 404 路由、预加载策略、routerLink 导航,以及通过路由输入向组件传参。Angular 21 的变更包括:推荐函数式守卫与解析器;新增路由输入;withComponentInputBinding 启用组件输入绑定;路由快照类型安全改进;新增 provideRouter() 函数式配置;RouterModule.forRoot() 已弃用。
使用方式:用 provideRouter(routes) 配置路由,例如懒加载可写 loadChildren: () => import('./dashboard/dashboard.routes').then(m => m.DASHBOARD_ROUTES)。函数式守卫用 inject 注入服务,在未认证时返回 router.createUrlTree(['/login'])。对懒加载路由使用 canMatch 守卫避免未授权代码下载。用 resolve 预取数据,用 withComponentInputBinding() 将路由参数绑定到组件输入。404 用 path: '**'。预加载用 withPreloading(PreloadAllModules)。导航使用 routerLink,避免 href 导致整页刷新。URL 路径建议使用 kebab-case。
适用场景:包含懒加载特性模块、鉴权守卫、数据预取和 SPA 导航的 Angular 应用。
限制:资料未提供安装命令、版本兼容矩阵、性能数据或收费信息;上述百分比(如减少 50-70% 初始包体积)为资料原文陈述,未提供验证来源。部分 API 变更细节未完整展开。