Angular е популярна JavaScript рамка за фронт-енд, която предоставя мощен начин за създаване на едностранични приложения (SPA). В Angular, инжекцията на зависимости (DI) е ключова функция, която ни позволява ефективно да управляваме зависимости в нашите приложения. Системата за инжектиране на зависимости на Angular използва InjectionTokens за реализиране на определени специални изисквания за инжектиране на зависимости. В тази статия ще обясня подробно какво прави InjectionToken и ще дам примери, които илюстрират практическото му приложение в приложенията на Angular.
Какво е инжекция на зависимост?
Преди да се потопим в InjectionToken, нека първо разберем какво е dependency injection. Инжекцията на зависимости е дизайн модел, който ни позволява да инжектираме зависимости на един обект (например услуги или конфигурации) в друг обект, без да ги кодираме твърдо. Ползите от това включват:
1. Поддържаемост: Чрез инжектиране на зависимости в компоненти можем лесно да променяме тези зависимости без да се налага да променяме обширен код. 2. Тестируемост: Можем лесно да предоставим симулирани зависимости за компоненти за unit тестване, без реално да създаваме инстанции на тези зависимости. 3. Свободно свързване: Инжекцията на зависимост ни помага да постигнем разхлабено свързване, което прави връзките между отделните компоненти по-гъвкави.
В Angular инжектирането на зависимости е вградено, а контейнерът за инжектиране на зависимости на Angular отговаря за управлението на създаването и жизнения цикъл на зависимостите.
Защо ти трябва InjectionToken?
Понякога трябва да инжектираме зависимостиНе е екземпляр на клас, а конфигурационен елемент, низ или друга некласова стойност。 Тук идва InjectionToken, който ни позволява да инжектираме некласови стойности в компоненти или услуги като зависимости.
Какво прави InjectionToken?
Ролята на InjectionToken е да дефинира идентификатор, който идентифицира зависимости. Позволява ни да инжектираме всяка стойност в Angular компонент или услуга, а не само в екземпляр на клас. Обикновено създаваме InjectionToken някъде в приложението и го използваме там, където трябва да инжектираме тази стойност.
Ето основните функции на InjectionToken:
1. Уникална идентификация: InjectionToken е уникален идентификатор, който гарантира уникалността на зависимостите. Това е важно, за да се предотврати объркване или конфликти в зависимостите. 2. Инжекция на зависимости без клас: InjectionToken ни позволява да инжектираме всяка стойност, а не само екземпляр на клас. Това е полезно в ситуации като конфигурации, константи, низове и др. 3. Конфигурация на доставчика: Чрез конфигурация на доставчика можем да кажем на Angular как да предостави инстанция на зависимостта за InjectionToken. Това ни позволява да предоставяме различни стойности за InjectionTokens в различни контексти.
Сега нека разгледаме употребата и ролята на InjectionToken с някои примери.
Инжектирай конфигурацията на приложението
Например, инжектираме конфигурация на приложението с URL адрес и име на средата, и кодът е следният:
От инжекцията на конструктора, разпечатката е следната:
Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим. |