Ленивая загрузка (lazy loading) в Angular позволяет уменьшить время первоначальной загрузки приложения, загружая модули и ресурсы только при необходимости. Это особенно важно для крупных приложений с множеством маршрутов и компонентов.
import()
для разделения кода.Создается отдельный модуль, например AdminModule:
@NgModule({
declarations: [AdminComponent],
imports: [CommonModule, RouterModule.forChild([
{ path: '', component: AdminComponent }
])]
})
export class AdminModule {}
Маршрут для ленивой загрузки указывается в основном маршрутизаторе:
const routes: Routes = [
{ path: 'admin', loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule) }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
При переходе на /admin Angular динамически загрузит
AdminModule, не включая его в основной бандл.
Предзагрузка модулей (Preloading): Angular позволяет заранее загружать ленивые модули после старта приложения, чтобы последующий переход был мгновенным.
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })Lazy loading с компонентами: можно загружать
отдельные компоненты динамически с помощью loadComponent.
Это особенно полезно для диалогов, всплывающих окон и виджетов.
Ленивая загрузка в Angular тесно связана с модульной архитектурой и современными подходами к оптимизации SPA, позволяя достигать высокой производительности даже при сложных и ресурсоёмких приложениях.