
Learn to navigate with the routerLink directive and highlight the active route using routerLinkActive, applying absolute and relative paths, router outlets, and a top menu in an Angular app.
Learn to lazy load the Angular router, loading the home component via dynamic import, and fetch courses from /api/courses.
Navigate to the course page using a dynamic router link built from the course url, and fetch data with a router resolver to render only when data is ready.
Explain configuring child routes in a lazy loaded Angular courses module, using nested router outlets for lessons list and lesson detail, and introducing a resolver to supply data.
Explore programmatic router navigation with the angular router service, implementing back to course with routerLink, and previous and next controls using relative navigation to navigate between lessons.
Use router guards such as canActivate, canActivateChild, canDeactivate, and canLoad with an authentication store to protect routes, handle login flows, and manage user state via observables.
Discover how canActivate router guards in Angular determine route access using an authentication store, returning true or a login URL tree to redirect unauthenticated users.
Implement a can deactivate guard in Angular to confirm exit from the course component with a dialog. It triggers when leaving the current route, not for child routes.
Explore can load guards for lazy loaded modules, protecting the courses module by loading only when authenticated, using the isLoggedIn observable and first operator, then redirecting unauthenticated users to login.
Explore Angular router secondary outlets and keep the chat window open across navigation by wiring a secondary outlet named chat with router link and routes.
Close the chat secondary outlet by setting it to null. A known issue prevents production use and requires a primary outlet navigation; consider an Angular Material dialog as a workaround.
This Course in a Nutshell
In this course, we are going to learn in detail the advantages of building a frontend UI as a single-page application, as opposed to a traditional multi-page application.
Single-page applications (or SPAs) have been around for years now, and are today more popular than ever as a simplified way to build enterprise frontends or internet product dashboards.
SPAs typically give the end-user a much better user experience, due to their better-perceived performance and responsiveness. In this course, we will learn how to use the Angular Router to turn our Angular application into a SPA.
Course Overview
We are going take as a starting point a small Angular application that does not have any routing yet. We are then going to learn how to configure the Angular Router from scratch. We will assume no prior Angular Router knowledge, as we explain everything from first principles.
We will start by introducing the essential router concepts such as route configuration, paths, router outlets, and router navigation links. From these essential concepts, will build a much more advanced routing scenario.
We will learn how to build a master-detail with detail-to-detail navigation scenario, and we will use this example to introduce all the advanced routing concepts and powerful features that the Angular Router offers us.
This will include lazy loading modules, data pre-fetching with Resolvers, protecting route access with Guards, custom pre-loading strategies, secondary outlets (auxiliary routes), and much more.
Table of Contents
This course covers the following topics:
What is a single page application?
Best practices for router configuration: home route, page not found route, etc.
Essential Router configurations concepts: paths, components, and outlets
Essential Router navigation concepts; the routerLink and routerLinkActive directives
Relative vs Absolute routing best practices
Understanding Path matching and router configuration order
Router Path and Query parameters
Router redirects
Deep linking with the Angular router: master-detail with detail-to-detail navigation scenario
Understanding router snapshots vs router observables
Lazy loaded routes
Route data pre-loading with Resolvers
Router module pre-loading strategies, building a custom preloading strategy
Router Guards - CanActivate and CanActivateChild Authentication Guards
Preventing route exits with CanDeactivate guards
Checking if a lazy-loaded module can be loaded with CanLoad
Router Loading Indicator
Understanding Router Hash location strategy
Secondary router outlets and auxiliary routes
The router module extra configuration options: enableTracing, scrollPositionRestoration, paramsInheritanceStrategy, etc
What Will You Learn In this Course?
At the end of this course, you will feel comfortable setting up the Angular Router from scratch in an existing Angular application
You will know not only the essentials of the router together with all its most advanced features, but most importantly you will know exactly when to use each feature and why, and you will know numerous best practices that will help you to make the most out of the Angular Router
Have a look at the course free lessons below, and please enjoy the course!