Що таке впровадження через конструктор (constructor injection)?
Впровадження через конструктор (constructor injection) - це спосіб, за яким Angular передає залежності прямо в конструктор класу.
Коли компонент або сервіс створюється, 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) {}
}Тут:
- Angular бачить, що в конструкторі потрібен
UserService; - знаходить його в інжекторі;
- створює (якщо потрібно) і підставляє в
userService.
Переваги:
- залежності видно одразу - за сигнатурою конструктора;
- легко тестувати - можна підставити фейковий сервіс;
- не потрібно вручну створювати об'єкти.
Підсумок: Constructor injection - це основний спосіб впровадження залежностей в Angular: усе, що потрібно класу, приходить автоматично через параметри конструктора.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.