Lazy loading a module 2.0.0
This draft deletes the entire topic.
Examples
-
Lazy loading modules helps us decrease the startup time. With lazy loading our application does not need to load everything at once, it only needs to load what the user expects to see when the app first loads. Modules that are lazily loaded will only be loaded when the user navigates to their routes.
app/app.module.ts
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; import { EagerComponent } from './eager.component'; import { routing } from './app.routing'; @NgModule({ imports: [ BrowserModule, routing ], declarations: [ AppComponent, EagerComponent ], bootstrap: [AppComponent] }) export class AppModule {}
app/app.component.ts
import { Component } from '@angular/core'; @Component({ selector: 'my-app', template: `<h1>My App</h1> <nav> <a routerLink="eager">Eager</a> <a routerLink="lazy">Lazy</a> </nav> <router-outlet></router-outlet> ` }) export class AppComponent {}
app/app.routing.ts
import { ModuleWithProviders } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { EagerComponent } from './eager.component'; const routes: Routes = [ { path: '', redirectTo: 'eager', pathMatch: 'full' }, { path: 'eager', component: EagerComponent }, { path: 'lazy', loadChildren: './lazy.module' } ]; export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
app/eager.component.ts
import { Component } from '@angular/core'; @Component({ template: '`<p>Eager Component</p>`' }) export class EagerComponent {}
There's nothing special about LazyModule other than it has its own routing and a component called LazyComponent (but it's not necessary to name your module or simliar so).
app/lazy.module.ts
import { NgModule } from '@angular/core'; import { LazyComponent } from './lazy.component'; import { routing } from './lazy.routing'; @NgModule({ imports: [routing], declarations: [LazyComponent] }) export class LazyModule {}
app/lazy.routing.ts
import { ModuleWithProviders } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { LazyComponent } from './lazy.component'; const routes: Routes = [ { path: '', component: LazyComponent } ]; export const routing: ModuleWithProviders = RouterModule.forChild(routes);
app/lazy.component.ts
import { Component } from '@angular/core'; @Component({ template: `<p>Lazy Component</p>` }) export class LazyComponent {}
Sign up or log in
Save edit as a guest
Join Stack Overflow
Using Google
Using Facebook
Using Email and Password
We recognize you from another Stack Exchange Network site!
Join and Save Draft