Skip to main content

Що таке route guards?

Route guards - це механізми, які контролюють доступ до маршрутів в Angular.

Вони вирішують: чи можна відкрити маршрут, чи можна піти з нього, чи варто завантажувати модуль тощо.


Основні типи guard

  • CanActivate - чи можна зайти на маршрут;
  • CanDeactivate - чи можна піти з поточного компонента;
  • CanActivateChild - чи можна зайти на дочірні маршрути;
  • CanLoad - чи можна завантажити лінивий модуль;
  • CanMatch - новий гнучкий guard для перевірки збігу маршруту.

Як працює:

Guard - це просто клас з методом, який повертає true, false або Observable/Promise<boolean>. Якщо false, Angular не пускає користувача на маршрут.


Приклад:

ts
@Injectable({ providedIn: 'root' }) export class AuthGuard implements CanActivate { canActivate(): boolean { return isUserLoggedIn(); // true або false } }
ts
{ path: 'admin', component: AdminComponent, canActivate: [AuthGuard] }

Підсумок: Guard - це фільтр перед маршрутом, щоб не показувати те, чого не можна.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.