Angular is een populair front-end JavaScript-framework dat een krachtige manier biedt om single-page applicaties (SPAs) te bouwen. In Angular is Dependency Injection (DI) een belangrijke functie die ons in staat stelt om afhankelijkheden in onze applicaties efficiënt te beheren. Het afhankelijkheidsinjectiesysteem van Angular gebruikt InjectionTokens om bepaalde speciale afhankelijkheidsinjectievereisten te implementeren. In dit artikel zal ik in detail uitleggen wat InjectionToken doet en voorbeelden geven om het praktische gebruik in Angular-toepassingen te illustreren.
Wat is afhankelijkheidsinjectie?
Voordat we in InjectionToken duiken, laten we eerst begrijpen wat dependency injection is. Afhankelijkheidsinjectie is een ontwerppatroon waarmee we afhankelijkheden van het ene object (bijvoorbeeld services of configuraties) in een ander object kunnen injecteren zonder die afhankelijkheden hardcoden te maken. De voordelen hiervan zijn onder andere:
1. Onderhoudbaarheid: Door afhankelijkheden in componenten te injecteren, kunnen we deze afhankelijkheden eenvoudig wijzigen zonder uitgebreide code te hoeven wijzigen. 2. Testbaarheid: We kunnen eenvoudig gesimuleerde afhankelijkheden leveren voor componenten om te unittesten zonder daadwerkelijk instanties van die afhankelijkheden aan te maken. 3. Losse koppeling: Afhankelijkheidsinjectie helpt ons losse koppeling te bereiken, waardoor de relaties tussen individuele componenten flexibeler worden.
In Angular is afhankelijkheidsinjectie ingebouwd, en is de afhankelijkheidsinjectiecontainer van Angular verantwoordelijk voor het beheren van het creëren en de levenscyclus van afhankelijkheden.
Waarom heb je een InjectionToken nodig?
Soms moeten we afhankelijkheden injecterenGeen instantie van een klasse, maar een configuratie-item, string of andere niet-klasse waarde。 Hier komt InjectionToken om de hoek kijken, waarmee we niet-klassewaarden kunnen injecteren in componenten of diensten als afhankelijkheden.
Wat doet InjectionToken?
De rol van een InjectionToken is het definiëren van een identificatie die afhankelijkheden identificeert. Het stelt ons in staat om elke waarde in een Angular-component of -dienst te injecteren, niet alleen in een instantie van een klasse. Normaal maken we ergens in de applicatie een InjectionToken aan en gebruiken we die waar we die waarde moeten injecteren.
Hier zijn de belangrijkste functies van InjectionToken:
1. Unieke identificatie: De InjectionToken is een unieke identificatie die de uniciteit van afhankelijkheden waarborgt. Dit is belangrijk om verwarring of conflicten in afhankelijkheden te voorkomen. 2. Non-class Dependency Injection: InjectionToken stelt ons in staat elke waarde te injecteren, niet alleen een instantie van een klasse. Dit is nuttig in scenario's zoals configuraties, constanten, strings, enzovoort. 3. Providerconfiguratie: Via providerconfiguratie kunnen we Angular vertellen hoe een instantie van de afhankelijkheid voor de InjectionToken kan worden geleverd. Dit stelt ons in staat om verschillende waarden voor InjectionTokens in verschillende contexten te bieden.
Laten we nu het gebruik en de rol van InjectionToken met enkele voorbeelden beschrijven.
Injecteer de app-configuratie
We injecteren bijvoorbeeld een applicatieconfiguratie met het URL-adres en de omgevingsnaam, en de code is als volgt:
Uit de constructor-injectie is de afdruk als volgt:
Referentie:
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar. |