Отложенная загрузка — это важный метод, используемый в приложениях Angular для повышения производительности за счет загрузки модулей и компонентов по требованию, а не предварительной загрузки всего. Один из популярных способов добиться отложенной загрузки в Angular — использовать свойство loadChildren
в конфигурации Angular Router. В этой статье мы рассмотрим несколько методов реализации отложенной загрузки с помощью loadChildren
с примерами кода.
Метод 1: базовая отложенная загрузка
Самый простой метод отложенной загрузки — указать путь к файлу модуля в свойстве loadChildren
конфигурации маршрута. Вот пример:
const routes: Routes = [
{
path: 'lazy',
loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule)
}
];
Метод 2: динамический импорт с помощью пользовательских модулей
В некоторых случаях вы можете использовать пользовательский модуль для отложенной загрузки вместо модуля по умолчанию. Этого можно добиться путем динамического импорта модуля и указания его в свойстве loadChildren
. Вот пример:
const routes: Routes = [
{
path: 'lazy',
loadChildren: () => import('./lazy/lazy.module').then(m => m.CustomLazyModule)
}
];
Метод 3: стратегии предварительной загрузки
Angular предоставляет стратегии предварительной загрузки для загрузки ленивых модулей в фоновом режиме, пока пользователь взаимодействует с приложением. Это улучшает воспринимаемую производительность за счет уменьшения задержки при переходе по маршруту с отложенной загрузкой. Вот пример использования стратегии PreloadAllModules
:
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
Метод 4: Условная загрузка
Вы можете условно загружать модули на основе определенных критериев, используя защиту canLoad
. Это позволяет предотвратить загрузку ленивого модуля в зависимости от определенных условий. Вот пример:
const routes: Routes = [
{
path: 'lazy',
loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule),
canLoad: [AuthGuard]
}
];
Отложенная загрузка в Angular с использованием loadChildren
— это мощный метод оптимизации производительности приложения за счет загрузки модулей и компонентов по требованию. В этой статье мы рассмотрели различные методы реализации отложенной загрузки, включая базовую отложенную загрузку, динамический импорт с помощью пользовательских модулей, стратегии предварительной загрузки и условную загрузку. Используя эти методы, вы можете значительно улучшить взаимодействие с пользователем и сократить время начальной загрузки приложений Angular.