intermediate

Routing

Проектируйте деревья маршрутов: lazy loading, guards, resolvers, params, nested outlets и компромиссы preloading.

Angular Router сопоставляет URL config с components через `RouterModule` или standalone `provideRouter`. Lazy `loadComponent` / `loadChildren` делят бандлы. Guards (`canActivate`, `canMatch`) защищают маршруты; resolvers prefetch до activation.

					{
  path: 'admin',
  canActivate: [authGuard],
  loadChildren: () => import('./admin/routes').then((m) => m.ADMIN_ROUTES),
}
				

Вложенный `router-outlet` — master-detail. Preloading балансирует первую загрузку и latency последующей навигации.

На интервью: guard vs resolver, paramMap Observables, secondary outlets для modals.

Типовые ошибки: тяжёлый resolver блокирует навигацию, side effects guards вместо services, лишний reload parent routes.

Компромисс: богатые возможности навигации (guards, resolvers, lazy routes) против стоимости конфигурации и настройки preload.

Чеклист:

  • Lazy-load зон фич.
  • Guards для auth; resolvers для обязательных data.
  • paramMap + switchMap.
  • Preloading под цели UX.