Що таке інжектор компонента (element injector)?
Інжектор компонента (element injector) - це інжектор, який Angular створює для кожного компонента. Він відповідає за залежності, доступні тільки цьому компоненту та його дочірнім елементам.
Як це працює:
- кожен компонент під час створення отримує свій власний інжектор;
- якщо в компоненті вказані провайдери, Angular зберігає їх саме там;
- під час пошуку залежності Angular йде знизу вгору: спочатку в інжектор компонента, потім - до модульного і кореневого.
Приклад:
ts
@Component({
selector: 'app-user',
template: `<p>Профіль</p>`,
providers: [UserService] // провайдер на рівні компонента
})
export class UserComponent {
constructor(private userService: UserService) {}
}Тут UserService буде створений тільки для цього компонента,
і кожен новий екземпляр UserComponent отримає свій екземпляр сервісу.
Навіщо потрібен:
- щоб ізолювати залежності між компонентами;
- щоб кожен компонент міг мати свій незалежний стан;
- для оптимізації і тестування - менше спільних даних.
Підсумок: Інжектор компонента - це локальний контейнер залежностей, який керує сервісами тільки для конкретного компонента і його нащадків.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.