Add App-Routing.Module In Angular 12: A Step-by-Step Guide

9 min read 11-15- 2024
Add App-Routing.Module In Angular 12: A Step-by-Step Guide

Table of Contents :

Angular 12 has brought several improvements and features that enhance development processes, including the addition of an App-Routing.Module. Routing is a key concept in Angular applications, allowing developers to manage navigation between different views seamlessly. In this comprehensive guide, we will walk you through the steps to add App-Routing.Module in Angular 12, ensuring that you can implement navigation in your application effectively.

What is Angular Routing? πŸ€”

Routing in Angular enables navigation from one view to the next as users perform application tasks. This helps create a single-page application where users can interact with multiple views without having to reload the page. The router manages the URL in the browser address bar, allowing users to bookmark, navigate, and share specific application views.

Why Use an App-Routing.Module? 🌟

Using an App-Routing.Module in your Angular application:

  • Modularity: Keeps your routing configuration separate from other application logic.
  • Organized Code: Promotes better code organization and readability, making it easier to manage navigation.
  • Reusability: Allows you to reuse routing configurations in multiple modules.

Step-by-Step Guide to Add App-Routing.Module in Angular 12 πŸ› οΈ

Step 1: Create a New Angular Project πŸŽ‰

If you haven't created an Angular application yet, you can do so by running the following command in your terminal:

ng new angular-routing-app

Step 2: Navigate to Your Project Directory

Move into the newly created project directory:

cd angular-routing-app

Step 3: Generate the App-Routing.Module πŸ—οΈ

Next, you will create the routing module. Use the Angular CLI command to generate a new module:

ng generate module app-routing --flat --module=app
  • --flat: Indicates that the module should be created without a separate directory.
  • --module=app: Automatically imports the new routing module into the app.module.ts.

Step 4: Configure Routes πŸ“

Open the newly created app-routing.module.ts file and define your routes. Here’s a sample routing configuration:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';

const routes: Routes = [
  { path: '', redirectTo: '/home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent },
  { path: 'about', component: AboutComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
  • Redirect Route: The first route redirects an empty path to the HomeComponent.
  • Component Route: The other routes direct users to the respective components.

Step 5: Create Components for Routing πŸš€

You need to create the components that will be used in the routing configuration. Run the following commands to generate the components:

ng generate component home
ng generate component about

Step 6: Update App Component HTML πŸ–ΌοΈ

Next, you need to modify the main app.component.html file to include the router outlet and navigation links:



  • <nav>: Contains links to navigate between components.
  • <router-outlet>: Serves as a placeholder for displaying routed components.

Step 7: Add Basic Styles (Optional) 🎨

You can apply some basic styles in styles.css for better visual representation:

nav ul {
  list-style-type: none;
  padding: 0;
}

nav li {
  display: inline;
  margin-right: 10px;
}

Step 8: Run Your Application 🎈

Now it's time to see your routing in action. Run the application using the command:

ng serve

Navigate to http://localhost:4200/ in your browser. You should be able to click on the navigation links and see the respective components load dynamically without refreshing the page.

Common Routing Scenarios πŸ”„

Lazy Loading

Lazy loading is a technique that loads modules only when required. This enhances performance, especially for large applications. To implement lazy loading:

  1. Create a new feature module:
ng generate module feature --route feature --module app.module
  1. This command will automatically set up lazy loading for you.

Route Guards

Route guards allow you to control access to certain routes based on conditions. You can create a guard using:

ng generate guard auth

Then, you can implement logic in auth.guard.ts to control access based on user authentication.

Handling Not Found Routes

You can add a wildcard route at the end of your routing configuration to handle 404 pages:

{ path: '**', component: NotFoundComponent }

Table of Angular Routing Components and Features

<table> <tr> <th>Feature</th> <th>Description</th> </tr> <tr> <td>RouterModule</td> <td>The Angular module that enables routing capabilities.</td> </tr> <tr> <td>Routes</td> <td>An array that holds route configuration.</td> </tr> <tr> <td>routerLink</td> <td>Directive to navigate to specified route.</td> </tr> <tr> <td>router-outlet</td> <td>Directive that acts as a placeholder for routed components.</td> </tr> <tr> <td>Lazy Loading</td> <td>A technique to load modules on demand to improve performance.</td> </tr> <tr> <td>Route Guards</td> <td>Used to control access to routes based on conditions.</td> </tr> </table>

Important Notes πŸ“Œ

"Always ensure that you import your AppRoutingModule in the app.module.ts file to avoid routing issues."

Conclusion

Adding an App-Routing.Module in Angular 12 is a crucial step in building robust single-page applications. By following this step-by-step guide, you can effectively implement navigation in your Angular app, enhancing the user experience significantly. As you expand your application, remember to leverage advanced routing features such as lazy loading and route guards to optimize performance and security. Happy coding! πŸŽ‰