Skip to content

Preloading Strategies (PreloadAllModules, Custom)

Preloading loads lazy-loaded modules in the background after the application has started.

Angular provides two built-in strategies:

  • NoPreloading (default)
  • PreloadAllModules

Example using PreloadAllModules:

import { NgModule } from "@angular/core";
import { RouterModule, Routes, PreloadAllModules } from "@angular/router";
@NgModule({
imports: [
RouterModule.forRoot(routes, {
preloadingStrategy: PreloadAllModules,
}),
],
exports: [RouterModule],
})
export class AppRoutingModule {}

Custom preloading strategy:

import { PreloadingStrategy, Route } from "@angular/router";
import { Observable, of } from "rxjs";
export class CustomPreloadStrategy implements PreloadingStrategy {
preload(route: Route, load: () => Observable<any>): Observable<any> {
if (route.data && route.data["preload"]) {
return load();
}
return of(null);
}
}