Route guards هي دوال تتحكم في ما إذا كان التنقل إلى/من مسار معين مسموحاً به أم لا. يتم تنفيذها قبل تفعيل مسار (أو قبل مغادرتك لأحدها)، مما يتيح فحوصات المصادقة والتحكم في الأذونات ونوافذ "التغييرات غير المحفوظة".
أنواع الحماة
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
