Route guard là các hàm kiểm soát việc điều hướng tới/khỏi một route có được phép hay không. Chúng chạy trước khi một route được kích hoạt (hoặc trước khi bạn rời khỏi một route), cho phép kiểm tra xác thực, kiểm soát quyền, và nhắc "thay đổi chưa lưu".
Các loại guard
CanActivate → người dùng có thể vào route này không? (kiểm tra auth/quyền)
CanActivateChild → tương tự, cho route con
CanDeactivate → người dùng có thể RỜI không? ("bạn có thay đổi chưa lưu")
CanMatch → route này có nên được khớp hay không? (feature flag, theo vai trò)
resolve → lấy trước dữ liệu TRƯỚC khi route kích hoạt
