Angular — це популярний фронтенд-фреймворк JavaScript, який забезпечує потужний спосіб створення односторінкових додатків (SPA). У Angular ін'єкція залежностей (DI) є ключовою функцією, яка дозволяє ефективно керувати залежностями у наших додатках. Система ін'єкції залежностей від Angular використовує InjectionTokens для реалізації певних спеціальних вимог до ін'єкції залежностей. У цій статті я детально поясню, що робить InjectionToken, і наведу приклади для ілюстрації його практичного застосування в Angular-застосунках.
Що таке ін'єкція залежності?
Перш ніж зануритися в InjectionToken, давайте спочатку розберемося, що таке ін'єкція залежностей. Ін'єкція залежностей — це шаблон проєктування, який дозволяє впроваджувати залежності одного об'єкта (наприклад, сервісів або конфігурацій) в інший об'єкт без жорсткого кодування цих залежностей. Переваги цього включають:
1. Підтримуваність: Впроваджуючи залежності в компоненти, ми можемо легко змінювати ці залежності без необхідності змінювати великий код. 2. Тестуваність: Ми можемо легко надати змодельовані залежності для компонентів для юніт-тестування без фактичного створення екземплярів цих залежностей. 3. Слабке зчеплення: Інжекція залежностей допомагає досягти слабкого зв'язку, роблячи взаємозв'язки між окремими компонентами більш гнучкими.
У Angular ін'єкція залежностей вбудована, а контейнер ін'єкції залежностей відповідає за управління створенням і життєвим циклом залежностей.
Навіщо вам InjectionToken?
Іноді потрібно впроваджувати залежностіЦе не екземпляр класу, а елемент конфігурації, рядок або інше значення, що не є класом。 Ось тут і вступає в гру InjectionToken, який дозволяє впроваджувати некласові значення в компоненти або сервіси як залежності.
Що робить InjectionToken?
Роль InjectionToken полягає у визначенні ідентифікатора, який ідентифікує залежності. Він дозволяє нам впровадити будь-яке значення в компонент або сервіс Angular, а не лише в екземпляр класу. Зазвичай ми створюємо InjectionToken десь у додатку і використовуємо його там, де потрібно ввести це значення.
Ось основні функції InjectionToken:
1. Унікальна ідентифікація: InjectionToken — це унікальний ідентифікатор, який гарантує унікальність залежностей. Це важливо, щоб уникнути плутанини або конфліктів у залежностях. 2. Ін'єкція залежностей без класу: InjectionToken дозволяє нам вводити будь-яке значення, а не лише екземпляр класу. Це корисно у таких ситуаціях, як конфігурації, константи, рядки тощо. 3. Конфігурація провайдера: через конфігурацію провайдера ми можемо вказати Angular, як надати екземпляр залежності для InjectionToken. Це дозволяє нам надавати різні значення для InjectionTokens у різних контекстах.
Тепер давайте детально розглянемо використання та роль InjectionToken з кількома прикладами.
Інжекція конфігурації додатку
Наприклад, ми вставляємо конфігурацію додатку з URL-адресою та назвою середовища, і код виглядає так:
З ін'єкції конструктора друкований вигляд виглядає так:
Посилання:
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно. |