Angular er et populært front-end JavaScript-framework, der giver en kraftfuld måde at bygge single-page applikationer (SPAs) på. I Angular er Dependency Injection (DI) en nøglefunktion, der gør det muligt for os effektivt at håndtere afhængigheder i vores applikationer. Angulars afhængighedsinjektionssystem bruger InjectionTokens til at implementere visse særlige afhængighedsinjektionskrav. I denne artikel vil jeg forklare i detaljer, hvad InjectionToken gør, og give eksempler til at illustrere dets praktiske anvendelse i Angular-applikationer.
Hvad er afhængighedsinjektion?
Før vi dykker ned i InjectionToken, lad os først forstå, hvad afhængighedsinjektion er. Afhængighedsinjektion er et designmønster, der gør det muligt at injicere afhængigheder fra ét objekt (f.eks. tjenester eller konfigurationer) i et andet objekt uden at hardkode disse afhængigheder. Fordelene ved dette inkluderer:
1. Vedligeholdelsesevne: Ved at indsætte afhængigheder i komponenter kan vi nemt ændre disse afhængigheder uden at skulle ændre omfattende kode. 2. Testbarhed: Vi kan nemt levere simulerede afhængigheder for komponenter til enhedstest uden faktisk at oprette instanser af disse afhængigheder. 3. Løs kobling: Afhængighedsinjektion hjælper os med at opnå løs kobling, hvilket gør forholdet mellem individuelle komponenter mere fleksibelt.
I Angular er afhængighedsinjektion indbygget, og Angulars afhængighedsindsprøjtningsbeholder er ansvarlig for at styre oprettelsen og livscyklussen for afhængigheder.
Hvorfor har du brug for en InjectionToken?
Nogle gange er vi nødt til at indsætte afhængighederIkke en instans af en klasse, men et konfigurationselement, en streng eller en anden ikke-klasseværdi。 Her kommer InjectionToken ind i billedet, som gør det muligt for os at indsætte ikke-klasseværdier i komponenter eller tjenester som afhængigheder.
Hvad gør InjectionToken?
En InjectionTokens rolle er at definere en identifikator, der identificerer afhængigheder. Det gør det muligt at indsætte enhver værdi i en Angular-komponent eller -tjeneste, ikke bare en instans af en klasse. Normalt opretter vi en InjectionToken et sted i applikationen og bruger den, hvor vi skal indsætte værdien.
Her er hovedfunktionerne af InjectionToken:
1. Unik identifikation: InjectionToken er en unik identifikator, der sikrer afhængighedernes unikke karakter. Dette er vigtigt for at undgå forvirring eller konflikter i afhængigheder. 2. Ikke-klasseafhængighedsinjektion: InjectionToken tillader os at injicere enhver værdi, ikke blot en instans af en klasse. Dette er nyttigt i scenarier som konfigurationer, konstanter, strenge osv. 3. Udbyderkonfiguration: Gennem udbyderkonfiguration kan vi fortælle Angular, hvordan man leverer en instans af afhængigheden for InjectionToken. Dette gør det muligt for os at give forskellige værdier for InjectionTokens i forskellige sammenhænge.
Lad os nu beskrive brugen og rollen af InjectionToken med nogle eksempler.
Indsprøjt app-konfigurationen
For eksempel injicerer vi en applikationskonfiguration med URL-adressen og miljønavnet, og koden er som følger:
Fra konstruktørindsprøjtningen er udskriften som følger:
Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig. |