Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung des Abhängigkeitsinjektionsmusters in Angular

青灯夜游
Freigeben: 2021-04-22 10:08:54
nach vorne
2962 Leute haben es durchsucht

Dieser Artikel gibt Ihnen eine detaillierte Einführung in den Abhängigkeitsinjektionsmodus in Angular. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein. „Angular-Abhängigkeitsinjektionsmodus“ Bei mehreren Objekten kann die manuelle Instanziierung besonders problematisch sein, wenn Abhängigkeiten zwischen ihnen bestehen.

Wenn ein Objekt A von Objekt B abhängt, muss Objekt A nicht explizit durch einen externen Mechanismus instanziiert werden. Objekt A muss nur ein B-Objekt deklarieren. Dies ist das Problem, das die Abhängigkeitsinjektion löst. Detaillierte Erläuterung des Abhängigkeitsinjektionsmusters in Angular

Ein weiteres Konzept, das oft zusammen mit der Abhängigkeitsinjektion auftritt, heißt

Inversion of Control.

Inversion of Control: Inversion of Control, auch IOC genannt, bezieht sich auf die Umkehrung der abhängigen Kontrolle von der Innenseite des Codes zur Außenseite des Codes.

Dependency Injection und Inversion of Control

sind zwei Seiten derselben Medaille und drücken dieselbe Idee aus.

Abhängigkeitsinjektion

konzentriert sich auf die Beschreibung der Mittel, d die Außenseite des Codes.

Empfohlene verwandte Tutorials: „

Angular Tutorial

Die Vorteile des Abhängigkeitsinjektionsmodus

Lose Kopplung, wiederverwendbarVerbessern Sie die Testbarkeit von KomponentenWie Angular die Abhängigkeitsinjektion implementiert

Einspritzer

Jede Komponente verfügt über eine Injektorinstanz, die für die Injektion der von der Komponente benötigten Objekte verantwortlich ist. Der Injektor ist eine von Angular bereitgestellte Serviceklasse. Unter normalen Umständen ist es nicht erforderlich, die Injektormethode direkt aufzurufen. Der Injektor injiziert die von der Komponente benötigten Objekte automatisch über den

Konstruktor in die Komponente. Der Anbieter teilt dem Injektor mit, wie die Instanz erstellt werden soll.

    Provider
  • Damit der Injektor weiß, wie das injizierte Objekt instanziiert wird, muss ein Provider angegeben werden. Im Allgemeinen deklarieren wir das Objekt, das bereitgestellt werden muss, über das Provider-Attribut der Komponente oder des Moduls.

Allgemeine Deklarationsmethode
providers:[{provide:AService, useClass: AServivce}] <=> providers:[AService]
provide 属性:指定了提供器的令牌(token)
useClass 属性:表示实例化方式是 new
Nach dem Login kopieren

Factory-Methoden-Deklarationsmethode
使用 useFactory 方式实例化对象
providers:[
  {
    provide:AService, 
    useFactory: (bService: BService) => {
      ....
    },
    deps:[BService] //deps声明工厂方法所依赖的服务。
    ]
工厂方法创建的对象是单例对象
Nach dem Login kopieren
Das im Konstruktor deklarierte Objekt stimmt mit dem Token im Anbieter gemäß dem Klassennamen überein und instanziiert dann das angegebene Objekt basierend auf dem Wert des useClass-Attribut.

Provider-Injection-Regeln

Wenn ein Provider in einem Modul deklariert ist, ist er für alle Komponenten sichtbar und kann in alle Komponenten injiziert werden.

Wenn ein Provider in einer Komponente deklariert ist, ist er nur für alle sichtbar Komponenten, die es deklarieren Komponenten und Unterkomponenten sind sichtbar, aber andere Komponenten sind nicht sichtbar

Wenn der im Modul deklarierte Anbieter dasselbe Token hat wie der in der Komponente deklarierte Anbieter, überschreibt der in der Komponente deklarierte Anbieter das Modul; Allgemeine Situation Als nächstes sollten wir alle Anbieter in Modulen deklarieren.

Weitere Programmierkenntnisse finden Sie unter: Programmiervideo

! !

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Abhängigkeitsinjektionsmusters in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage