Проверяет понимание механизма маршрутизации в Angular и умения ограничивать доступ к маршрутам через guard-функции.
Guard в Angular — это перехватчик навигации, который выполняется до того, как роутер активирует или покинет маршрут. Он позволяет централизованно описать правила доступа и логику, которая должна сработать при переходах между страницами, не размазывая проверки по компонентам.
@Injectable({ providedIn: 'root' })
export class AuthGuard implements CanActivate {
constructor(private auth: AuthService, private router: Router) {}
canActivate(): boolean {
if (this.auth.isLoggedIn()) return true;
this.router.navigate(['/login']);
return false;
}
}
// В роутере:
{ path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] }Современный Angular поддерживает функциональные guard — обычные функции, возвращающие boolean, Promise или Observable. Это упрощает код и уменьшает количество классов.
Guard стоит применять, когда логика проверки относится к навигации, а не к самому компоненту: так код остаётся чистым, переиспользуемым и легко тестируемым.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию