Sometimes, it's a good idea to prevent certain routes from being navigated, and to provide a fallback navigation for those scenarios. This is especially true when your routes include dynamic route parameters, which can change over time, meaning users may still have outdated bookmarks to those old URLs.
Guards are the perfect helper for preventing these navigation errors. While guards help you to prevent access to certain routes and redirect accordingly, you should never rely on them to provide any kind of security for your application. Security always needs to come from a server. Using guards, you can just provide the necessary usability of a user accessing an area where he would be confronted with errors, maybe because of missing permissions to call a backend web service, or simply because a navigated detail view by an item ID no longer exists.
Within...