Інʼєкція Сервісу в Компонент
Ви створили TaskService
, який відповідає за зберігання та керування списком завдань. Однак сам по собі сервіс не взаємодіє з інтерфейсом користувача. Щоб отримати дані із сервісу в шаблон компонента, необхідно впровадити сервіс у відповідний компонент.
Далі ви дізнаєтеся, як Angular автоматично допомагає підключати сервіси до компонентів за допомогою інʼєкції залежностей (DI) та як сервіс працює всередині компонента.
Що таке інʼєкція залежностей?
Інʼєкція залежностей (DI) — це шаблон проєктування, за якого Angular автоматично впроваджує необхідні залежності (наприклад, сервіси) у конструктор компонента.
Завдяки DI компоненти не створюють екземпляри сервісів самостійно — вони просто отримують вже створений екземпляр. Angular забезпечує доставку необхідних об'єктів тим, хто їх потребує.
Це працює тому, що сервіс декоровано так:
@Injectable({
providedIn: 'root'
})
Цей декоратор повідомляє Angular створити єдиний екземпляр (сінглтон) сервісу для всього додатку та зробити його доступним для DI.
Інʼєкція сервісу в компонент
Тепер введемо TaskService
у TaskListComponent
, щоб він міг отримувати список завдань і взаємодіяти з ним.
Ось як виглядає код компонента:
task-list.ts
Ми імпортуємо TaskService
, інтерфейс Task
, а також інші компоненти та модулі, необхідні для шаблону.
У конструкторі компонента додаємо сервіс за допомогою інжекції залежностей:
task-list.ts
Ви зберігаєте його як приватне поле для використання в методах компонента. Одразу після створення компонента (всередині конструктора) отримуємо список завдань. Цей список потім використовується в HTML-шаблоні.
Методи deleteTask
та toggleStatus
викликають функції сервісу для видалення завдання або зміни його статусу, а потім оновлюють локальний масив tasks
, щоб інтерфейс користувача відображав зміни.
Такий підхід робить компонент простим: він не знає, як зберігаються чи обробляються дані — він лише звертається до сервісу для їх оновлення. Це розділяє відповідальність: компоненти відповідають за відображення, а сервіси — за дані.
1. Що таке впровадження залежностей (DI) в Angular?
2. Чому ми оновлюємо this.tasks
після виклику deleteTask
або toggleStatus
?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Інʼєкція Сервісу в Компонент
Свайпніть щоб показати меню
Ви створили TaskService
, який відповідає за зберігання та керування списком завдань. Однак сам по собі сервіс не взаємодіє з інтерфейсом користувача. Щоб отримати дані із сервісу в шаблон компонента, необхідно впровадити сервіс у відповідний компонент.
Далі ви дізнаєтеся, як Angular автоматично допомагає підключати сервіси до компонентів за допомогою інʼєкції залежностей (DI) та як сервіс працює всередині компонента.
Що таке інʼєкція залежностей?
Інʼєкція залежностей (DI) — це шаблон проєктування, за якого Angular автоматично впроваджує необхідні залежності (наприклад, сервіси) у конструктор компонента.
Завдяки DI компоненти не створюють екземпляри сервісів самостійно — вони просто отримують вже створений екземпляр. Angular забезпечує доставку необхідних об'єктів тим, хто їх потребує.
Це працює тому, що сервіс декоровано так:
@Injectable({
providedIn: 'root'
})
Цей декоратор повідомляє Angular створити єдиний екземпляр (сінглтон) сервісу для всього додатку та зробити його доступним для DI.
Інʼєкція сервісу в компонент
Тепер введемо TaskService
у TaskListComponent
, щоб він міг отримувати список завдань і взаємодіяти з ним.
Ось як виглядає код компонента:
task-list.ts
Ми імпортуємо TaskService
, інтерфейс Task
, а також інші компоненти та модулі, необхідні для шаблону.
У конструкторі компонента додаємо сервіс за допомогою інжекції залежностей:
task-list.ts
Ви зберігаєте його як приватне поле для використання в методах компонента. Одразу після створення компонента (всередині конструктора) отримуємо список завдань. Цей список потім використовується в HTML-шаблоні.
Методи deleteTask
та toggleStatus
викликають функції сервісу для видалення завдання або зміни його статусу, а потім оновлюють локальний масив tasks
, щоб інтерфейс користувача відображав зміни.
Такий підхід робить компонент простим: він не знає, як зберігаються чи обробляються дані — він лише звертається до сервісу для їх оновлення. Це розділяє відповідальність: компоненти відповідають за відображення, а сервіси — за дані.
1. Що таке впровадження залежностей (DI) в Angular?
2. Чому ми оновлюємо this.tasks
після виклику deleteTask
або toggleStatus
?
Дякуємо за ваш відгук!