Route guards são funções que controlam se a navegação para/de uma rota é permitida. Elas são executadas antes de uma rota ser ativada (ou antes de você deixá-la), permitindo verificações de autenticação, controle de permissões e prompts de "alterações não salvas".
Por que isso importa
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
