Skip to main content

Що таке Dependency Injection (DI) в Angular? Навіщо потрібен механізм DI?

Dependency Injection (DI) - це механізм, за допомогою якого Angular автоматично передає потрібні залежності (наприклад, сервіси) у компоненти, директиви або інші класи.

Простими словами:

Замість того щоб створювати об'єкти вручну через new, Angular сам їх створює і підставляє, коли вони потрібні.


Приклад:

ts
import { Component } from '@angular/core'; import { UserService } from './user.service'; @Component({ selector: 'app-profile', template: `{{ userService.userName }}` }) export class ProfileComponent { constructor(public userService: UserService) {} }

Тут UserService автоматично створюється Angular і передається в конструктор компонента. Тобі не потрібно писати new UserService() - Angular сам знає, як це зробити.


Навіщо потрібен DI:

  1. Менше зв'язності. Компоненти не знають, як створюються сервіси - тільки що вони є.
  2. Простіше тестувати. Можна підмінити залежності на фейкові (mock).
  3. Повторне використання. Один сервіс можна використовувати в різних місцях.
  4. Керування часом життя. Angular вирішує, коли створювати і знищувати залежності.

Підсумок: Dependency Injection - це спосіб, за якого Angular бере на себе створення і передачу потрібних об'єктів, щоб код був чистішим, гнучкішим і простішим у супроводі.

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

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

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