Angular är ett populärt front-end JavaScript-ramverk som erbjuder ett kraftfullt sätt att bygga enkelsidiga applikationer (SPAs). I Angular är beroendeinjektion (DI) en nyckelfunktion som gör att vi effektivt kan hantera beroenden i våra applikationer. Angulars system för beroendeinjektion använder InjectionTokens för att implementera vissa särskilda krav på beroendeinjektion. I denna artikel kommer jag att förklara i detalj vad InjectionToken gör och ge exempel för att illustrera dess praktiska användning i Angular-applikationer.
Vad är beroendeinjektion?
Innan vi dyker in i InjectionToken, låt oss först förstå vad beroendeinjektion är. Beroendeinjektion är ett designmönster som gör det möjligt för oss att injicera beroenden från ett objekt (t.ex. tjänster eller konfigurationer) i ett annat objekt utan att hårdkoda dessa beroenden. Fördelarna med detta inkluderar:
1. Underhållbarhet: Genom att injicera beroenden i komponenter kan vi enkelt ändra dessa beroenden utan att behöva ändra omfattande kod. 2. Testbarhet: Vi kan enkelt tillhandahålla simulerade beroenden för komponenter att enhetstesta utan att faktiskt skapa instanser av dessa beroenden. 3. Lös koppling: Beroendeinjektion hjälper oss att uppnå lös koppling, vilket gör relationerna mellan individuella komponenter mer flexibla.
I Angular är beroendeinjektion inbyggd, och Angulars beroendeinjektionscontainer ansvarar för att hantera skapandet och livscykeln för beroenden.
Varför behöver du en InjectionToken?
Ibland behöver vi injicera beroendenInte en instans av en klass, utan ett konfigurationsobjekt, en sträng eller annat icke-klassvärde。 Det är här InjectionToken kommer in, som låter oss injicera icke-klassvärden i komponenter eller tjänster som beroenden.
Vad gör InjectionToken?
En InjectionTokens roll är att definiera en identifierare som identifierar beroenden. Det låter oss injicera vilket värde som helst i en Angular-komponent eller tjänst, inte bara en instans av en klass. Normalt skapar vi en InjectionToken någonstans i applikationen och använder den där vi behöver injicera det värdet.
Här är huvudfunktionerna för InjectionToken:
1. Unik identifiering: InjectionToken är en unik identifierare som säkerställer beroendens unikhet. Detta är viktigt för att undvika förvirring eller konflikter i beroenden. 2. Icke-klassberoendeinjektion: InjectionToken låter oss injicera vilket värde som helst, inte bara en instans av en klass. Detta är användbart i scenarier som konfigurationer, konstanter, strängar, etc. 3. Providerkonfiguration: Genom providerkonfiguration kan vi tala om för Angular hur man tillhandahåller en instans av beroendet för InjectionToken. Detta gör att vi kan tillhandahålla olika värden för InjectionTokens i olika sammanhang.
Låt oss nu beskriva användningen och rollen för InjectionToken med några exempel.
Injicera appkonfigurationen
Till exempel injicerar vi en applikationskonfiguration med URL-adressen och miljönamnet, och koden är som följer:
Från konstruktörinjektionen är utskriften följande:
Hänvisning:
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig. |