Lazy Loading Feature Modules In Angular

Dinesh Kumar
2 min readMay 8, 2020

There are three steps to set up a lazy loading feature in Angular.

  • Create a feature module.
  • Create the routing module for the feature module.
  • The configuration of the routes.

Prerequisites:

You should have an Angular app. If you do not have then run the following command.

This command will create a ‘lazy-loading-app’ and -routing flag generate a file ‘app-routing.module.ts’. Now move into your project directory i.e lazy-loading-app

ng new lazy-loading-app --routing

Step 1 and 2: Create a feature module and routing module.

Run the following command.

ng generate module books --routing

This command will create a books folder with two files ‘BooksModule’ and ‘BooksRoutingModule’

Now add a component to the feature module books.

Run the following command to generate the component.
“ng generate component books/book-list”

This will generate a folder inside the books called book-list with all the required file which make the component.

Add the following code to your app.component.html file which is present inside the src/app

<h2>This is lazy loading example</h2> <button routerLink="/books/book">Load Books</button> <router-outlet></router-outlet>

Step 3. Configure the routes

In ‘src/app/app-routing.module.ts’ update the routes array from the following code.

const routes: Routes = [ { path: 'books', loadChildren: 'app/books/books.module#BooksModule' } ];

Now configure the feature module’s routes

Add the following code into the “src/app/books/books-routing.module.ts”

import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { BookListComponent } from './book-list/book-list.component'; const routes: Routes = [ { path: '', component: BookListComponent } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule] }) export class BooksRoutingModule { }

Now run the following command to confirm its working.

ng serve --open

This command will open a browser at port 4200.

Now open your network tab and then click on ‘Load Books’ button.
If a chunk appears, You have done everything correctly.

--

--