Skip to main content

Як відбувається завантаження lazy-loaded модулів?

В Angular lazy-loaded модулі (ліниво завантажувані) підвантажуються лише тоді, коли користувач переходить на певний маршрут, а не при старті застосунку.

Основні моменти

  1. Налаштування маршруту для лінивого завантаження:
ts
const routes: Routes = [ { path: 'admin', loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule) } ];
  • loadChildren вказує функцію, яка динамічно імпортує модуль через import().
  1. Що відбувається при переході на маршрут:
  • Angular викликає функцію loadChildren.
  • Браузер завантажує JS-файл модуля по мережі.
  • Створюється екземпляр модуля та його компонентів, реєструються маршрути й сервіси.
  1. Переваги:
  • Знижується розмір основного бандла застосунку.
  • Покращується час старту застосунку, оскільки не потрібно завантажувати всі модулі одразу.
  1. Вплив на життєвий цикл:
  • Lifecycle hooks компонентів модуля (ngOnInit, ngAfterViewInit та ін.) викликаються лише після завантаження й рендерингу лінивого модуля.
  • Lazy-loaded модуль створюється динамічно, ніби він був створений окремо.

Іншими словами, lazy-loaded модуль підвантажується за потреби, через динамічний імпорт, і його компоненти та сервіси ініціалізуються лише при переході на відповідний маршрут.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.