Angular je populární front-end JavaScriptový framework, který poskytuje výkonný způsob pro tvorbu jednostránkových aplikací (SPA). V Angularu je Dependency Injection (DI) klíčovou funkcí, která nám umožňuje efektivně spravovat závislosti v našich aplikacích. Angularův systém injekce závislostí používá InjectionTokens k implementaci určitých speciálních požadavků na injekci závislostí. V tomto článku podrobně vysvětlím, co InjectionToken dělá, a uvedu příklady pro jeho praktické využití v aplikacích Angular.
Co je to závislostní injekce?
Než se pustíme do InjectionToken, nejprve si pojďme vysvětlit, co je dependency injection. Dependency injection je návrhový vzor, který nám umožňuje vkládat závislosti jednoho objektu (např. služby nebo konfigurace) do jiného objektu, aniž bychom tyto závislosti museli pevně kódovat. Výhody tohoto řešení zahrnují:
1. Udržovatelnost: Vkládáním závislostí do komponent můžeme tyto závislosti snadno měnit bez nutnosti rozsáhlých úprav kódu. 2. Testovatelnost: Můžeme snadno poskytnout simulované závislosti pro komponenty pro unit test, aniž bychom skutečně vytvářeli instance těchto závislostí. 3. Volné propojení: Dependency injection nám pomáhá dosáhnout volného propojení, což činí vztahy mezi jednotlivými komponentami flexibilnějšími.
V Angularu je injekce závislostí vestavěná a kontejner pro injekci závislostí v Angularu je zodpovědný za správu vytváření a životního cyklu závislostí.
Proč potřebujete InjectionToken?
Někdy je potřeba vkládat závislostiNe instance třídy, ale konfigurační položka, řetězec nebo jiná netřídní hodnota。 Právě zde přichází na řadu InjectionToken, který nám umožňuje vkládat ne-třídní hodnoty do komponent nebo služeb jako závislosti.
Co vlastně InjectionToken dělá?
Úkolem InjectionTokenu je definovat identifikátor, který identifikuje závislosti. Umožňuje nám vstříknout jakoukoli hodnotu do komponenty nebo služby Angularu, nejen do instance třídy. Obvykle vytvoříme InjectionToken někde v aplikaci a použijeme ho tam, kde potřebujeme tuto hodnotu vstříknout.
Zde jsou hlavní funkce InjectionToken:
1. Jedinečná identifikace: InjectionToken je jedinečný identifikátor, který zajišťuje jedinečnost závislostí. To je důležité, aby se předešlo zmatkům nebo konfliktům v závislostech. 2. Injekce závislostí bez tříd: InjectionToken nám umožňuje vstříknout libovolnou hodnotu, nejen instanci třídy. To je užitečné v situacích jako jsou konfigurace, konstanty, řetězce atd. 3. Konfigurace poskytovatele: Prostřednictvím konfigurace poskytovatele můžeme Angularu říct, jak poskytnout instanci závislosti pro InjectionToken. To nám umožňuje poskytovat různé hodnoty pro InjectionTokeny v různých kontextech.
Nyní si pojďme podrobně vysvětlit použití a roli InjectionTokenu s několika příklady.
Vložte konfiguraci aplikace
Například vložíme aplikační konfiguraci s URL adresou a názvem prostředí a kód je následující:
Z injekce konstruktoru je výpis následující:
Odkaz:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné. |