DI (dependency injection) w Angularze pozwala na dostarczanie zale偶no艣ci. Po艣rednikiem mi臋dzy elementami i zale偶no艣ciami, kt贸re mo偶na wstrzykiwa膰, jest Injector. Gdy zale偶no艣膰 jest potrzebna, Injector sprawdza, czy istnieje jej instancja i je艣li nie, tworzy j膮 i dodaje do rejestru. W wi臋kszo艣ci przypadk贸w, mo偶esz u偶ywa膰 uproszczonego DI, jednak warto wiedzie膰, jak dzia艂a to pod spodem.
Rejestrowanie zale偶no艣ci
Zale偶no艣膰 mo偶na zarejestrowa膰 w kilku miejscach.
W metodzie bootstrapApplication - wtedy serwis b臋dzie dost臋pny w ca艂ej aplikacji.
Na poziomie komponentu - dodaj膮c j膮 do tablicy providers. W takiej sytuacji zostanie utworzona osobna instancja danej zale偶no艣ci.
Uwaga - zale偶no艣膰 mo偶na w ten spos贸b wstrzykn膮膰 do rodzica komponentu i b臋dzie ona dost臋pna dla wszystkich dzieci.
Do Root Injectora, u偶ywaj膮c provideIn: 'root'
W tej sytuacji, Angular utworzy jedn膮 instancj臋 tego serwisu.
Wstrzykiwanie zale偶no艣ci
Hierarchia injektor贸w
Angular posiada 2 hierarchie injector贸w: Model Injector i Element Injector.
Model Injector
NullInjector
Platform Module
Root Injector
Child Injector
Element Injector
Na podstawie - https://www.youtube.com/watch?v=G8zXugcYd7o&t=51s&ab_channel=DecodedFrontend
oraz dokumentacji Angulara
Brak komentarzy:
Prze艣lij komentarz