Route guards sont des fonctions qui contrôlent si la navigation vers/depuis une route est autorisée. Elles s'exécutent avant l'activation d'une route (ou avant de la quitter), permettant les vérifications d'authentification, le contrôle des permissions et les invites « modifications non enregistrées ».
Les types de guard
CanActivate → can the user enter this route? (auth/permission check)
CanActivateChild → same, for child routes
CanDeactivate → can the user LEAVE? ("you have unsaved changes")
CanMatch → should this route even be matched? (feature flags, role-based)
resolve → pre-fetch data BEFORE the route activates
