Skip to content

Lazy Loading

// app-routing.module.ts
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';

const routes: Routes = [
  {
    path: '',
    loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)
  },
  {
    path: 'workout/:workoutId',
    loadChildren: () => import('./workout-session/workout-session.module').then( m => m.WorkoutSessionPageModule)
  }
];
@NgModule({
  imports: [
    // preloadingStrategy helps to stop Navigation latency due to having to load the module on demmand. 
    // PreloadAllModules loads all lazyloading routes in the background???
    RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
  ],
  exports: [RouterModule]
})
export class AppRoutingModule {}
// workout-session-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { WorkoutSessionPage } from './workout-session.page';

const routes: Routes = [
  {
    path: '',
    component: WorkoutSessionPage
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
})
export class WorkoutSessionPageRoutingModule {}