Inhaltsverzeichnis
1. Zusammenfassung
2. Lebenszyklus und Sequenz
3. Reagieren Sie auf Lebenszyklusereignisse
4. 主要生命周期事件
5. 总结
Heim Web-Frontend js-Tutorial Eine kurze Diskussion über den Lebenszyklus von Komponenten in Angular

Eine kurze Diskussion über den Lebenszyklus von Komponenten in Angular

Jun 16, 2021 am 10:18 AM
angular 生命周期 组件

Dieser Artikel stellt Ihnen den Lebenszyklus von Komponenten (Component Lifecycle Hook) in Angular vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion über den Lebenszyklus von Komponenten in Angular

Umgebung:

  • Angular CLI: 11.0.6

  • Angular: 11.0.7

  • Knoten: 12.18.3

  • npm: 6.14.6

  • IDE : Visual Studio Code

1. Zusammenfassung

Der Lebenszyklus einer Komponenteninstanz beginnt, wenn Angular eine Komponentenklasse instanziiert und die Komponentenansicht und ihre Unteransichten rendert. Der Lebenszyklus wird immer von einer Änderungserkennung begleitet, wobei Angular prüft, ob sich datengebundene Eigenschaften ändern, und Ansichts- und Komponenteninstanzen nach Bedarf aktualisiert. Der Lebenszyklus endet, wenn Angular die Komponenteninstanz zerstört und die von ihr gerenderte Vorlage aus dem DOM entfernt. Anweisungen haben einen ähnlichen Lebenszyklus wie Angular, der während der Ausführung Instanzen erstellt, aktualisiert und zerstört. [Verwandte Tutorial-Empfehlung: „Angular-Tutorial“]

Ihre Anwendung kann die Lebenszyklus-Hook-Methode verwenden, um wichtige Ereignisse im Komponenten- oder Befehlslebenszyklus auszulösen, um neue Instanzen zu initialisieren und bei Bedarf die Änderungserkennung zu starten um auf Aktualisierungen zu reagieren und aufzuräumen, bevor die Instanz gelöscht wird.

2. Lebenszyklus und Sequenz

  • ngOnChanges(): Reagiert, wenn Angular die Eingabeeigenschaft der Datenbindung setzt oder zurücksetzt.

  • ngOnInit(): Initialisiert eine Direktive/Komponente, nachdem Angular zum ersten Mal die Datenbindung anzeigt und die Eingabeeigenschaften der Direktive/Komponente festlegt.

  • ngDoCheck(): Wird jedes Mal nach ngOnChanges() aufgerufen, wenn eine Änderungserkennung durchgeführt wird, und nach ngOnInit(), wenn eine Änderungserkennung zum ersten Mal durchgeführt wird.

  • ngAfterContentInit(): Wird aufgerufen, nachdem Angular externen Inhalt in die Komponentenansicht oder die Ansicht projiziert, in der sich die Direktive befindet.

  • ngAfterContentChecked(): Wird nach ngAfterContentInit() und jedem ngDoCheck() aufgerufen.

  • ngAfterViewInit(): Wird aufgerufen, nachdem Angular die Komponentenansicht und ihre Unteransichten oder die Ansicht, die diese Direktive enthält, initialisiert hat.

  • ngAfterViewChecked(): Wird nach ngAfterViewInit() und jedem ngAfterContentChecked() aufgerufen.

  • ngOnDestroy(): Wird jedes Mal aufgerufen, bevor Angular eine Direktive/Komponente zerstört, um Ressourcen zu bereinigen und freizugeben.

3. Reagieren Sie auf Lebenszyklusereignisse

Wir reagieren auf Ereignisse im Komponenten- oder Direktivenlebenszyklus, indem wir eine oder mehrere in Angular definierte Lebenszyklus-Hook-Schnittstellen implementieren. Jede Schnittstelle verfügt über eine eindeutige Hook-Methode und ihre Namen bestehen aus dem Schnittstellennamen und dem Präfix ng. Zum Beispiel:

@Component()
export class DemoComponent implements OnInit {
  constructor() { }

  // implement OnInit's `ngOnInit` method
  ngOnInit() { 
      // do something here
  }
}
Nach dem Login kopieren

Anweisungen:

1) Um auf Ereignisse im Lebenszyklus über die Lebenszyklus-Hook-Schnittstelle zu reagieren, müssen Sie die Implementierung (Implementierungen) der spezifischen Hook-Schnittstelle nach dem Klassennamen deklarieren. Definieren Sie dann eine Hook-Funktion im auszuführenden Code. Beispielsweise entspricht ngOnInit() der Schnittstelle OnInit. ngOnInit() 对应 接口OnInit

2) 可以实现多个钩子接口,例如 export class DemoComponent implements OnInit, OnDestroy {<!-- -->

4. 主要生命周期事件

4.1. 初始化事件 ngOnInit()

使用 ngOnInit() 方法执行以下初始化任务:

  • 逻辑稍复杂,不适合放到构造函数中的逻辑

  • 初始化中的数据访问逻辑

  • 处理需要根据父组件传入参数(@Input)进行初始化的逻辑

4.2. 实例销毁 ngOnDestroy()

把清理逻辑放进 ngOnDestroy() 中,这个逻辑就必然会在 Angular 销毁该指令之前运行。下列逻辑可言放到ngOnDestroy():

  • 取消订阅可观察对象和 DOM 事件。

  • 停止 interval 计时器。

  • 反注册该指令在全局或应用服务中注册过的所有回调。

  • 释放其他占有的资源。

5. 总结

  • 使用生命周期事件钩子函数,别忘了类名后面implements

    2) Es können mehrere Hook-Schnittstellen implementiert werden, z. B. export class DemoComponent implementiert OnInit, OnDestroy {<!-- -->
  • 4. Hauptlebenszyklusereignisse
  • 4.1. Initialisierungsereignis ngOnInit()
  • Verwenden Sie die ngOnInit()-Methode, um die folgenden Initialisierungsaufgaben auszuführen:

Die Logik ist etwas kompliziert und ist nicht für die Platzierung im Konstruktor geeignet. Die Logik

🎜 Die Datenzugriffslogik bei der Initialisierung 🎜🎜🎜🎜 verarbeitet die Logik, die gemäß den eingehenden Parametern der übergeordneten Komponente (@Input) initialisiert werden muss 🎜🎜🎜🎜🎜 4.2. Instanzzerstörung ngOnDestroy()🎜🎜🎜Fügen Sie die Bereinigungslogik in ngOnDestroy() ein, und diese Logik wird zwangsläufig ausgeführt, bevor Angular die Anweisung zerstört. Die folgende Logik kann in ngOnDestroy() eingefügt werden: 🎜🎜🎜🎜Unsubscribe von Observables und DOM-Ereignissen. 🎜🎜🎜🎜Intervall-Timer stoppen. 🎜🎜🎜🎜Deregistrieren Sie alle von diesem Befehl registrierten Rückrufe global oder in Anwendungsdiensten. 🎜🎜🎜🎜Andere belegte Ressourcen freigeben. 🎜🎜🎜🎜🎜5. Zusammenfassung🎜🎜🎜🎜🎜Verwenden Sie die Hook-Funktion für Lebenszyklusereignisse. Vergessen Sie nicht die entsprechende Schnittstelle implements, da sie sonst nicht wirksam wird 🎜🎜Initialisierungscode, unterscheiden Sie, welche in Konstruktoren und welche in ngOnInit() platziert werden sollen; 🎜🎜🎜🎜 Sie können optimierte Hook-Ereignismethoden verwenden, um Leistungsprobleme zu vermeiden; 🎜🎜🎜🎜ngOnChanges() tritt sehr häufig auf , und das Hinzufügen komplexer Logik wirkt sich auf die Leistung aus. 🎜🎜🎜🎜Weitere Informationen zum Programmieren finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über den Lebenszyklus von Komponenten in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So installieren Sie die DirectPlay-Komponente der alten Windows 10-Version So installieren Sie die DirectPlay-Komponente der alten Windows 10-Version Dec 28, 2023 pm 03:43 PM

Viele Benutzer stoßen beim Spielen einiger Spiele unter Win10 immer auf Probleme, wie z. B. ein Einfrieren des Bildschirms und unscharfe Bildschirme. Zu diesem Zeitpunkt können wir das Problem lösen, indem wir die Directplay-Funktion aktivieren, und die Bedienungsmethode der Funktion ist ebenfalls sehr einfach. So installieren Sie DirectPlay, die alte Komponente von Win10 1. Geben Sie „Systemsteuerung“ in das Suchfeld ein und öffnen Sie es. 2. Wählen Sie große Symbole als Anzeigemethode. 3. Suchen Sie nach „Programme und Funktionen“. 4. Klicken Sie links, um oder zu aktivieren Win-Funktionen ausschalten 5. Wählen Sie hier die alte Version aus. Aktivieren Sie einfach das Kontrollkästchen

So installieren Sie Angular unter Ubuntu 24.04 So installieren Sie Angular unter Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

Angular.js ist eine frei zugängliche JavaScript-Plattform zum Erstellen dynamischer Anwendungen. Es ermöglicht Ihnen, verschiedene Aspekte Ihrer Anwendung schnell und klar auszudrücken, indem Sie die Syntax von HTML als Vorlagensprache erweitern. Angular.js bietet eine Reihe von Tools, die Sie beim Schreiben, Aktualisieren und Testen Ihres Codes unterstützen. Darüber hinaus bietet es viele Funktionen wie Routing und Formularverwaltung. In dieser Anleitung wird erläutert, wie Angular auf Ubuntu24 installiert wird. Zuerst müssen Sie Node.js installieren. Node.js ist eine JavaScript-Ausführungsumgebung, die auf der ChromeV8-Engine basiert und es Ihnen ermöglicht, JavaScript-Code auf der Serverseite auszuführen. In Ub sein

Wie gehe ich mit der Zerstörung und dem Lebenszyklusmanagement von C++-Funktionszeigern um? Wie gehe ich mit der Zerstörung und dem Lebenszyklusmanagement von C++-Funktionszeigern um? Apr 17, 2024 pm 05:48 PM

In C++ erfordern Funktionszeiger eine ordnungsgemäße Zerstörung und Lebenszyklusverwaltung. Dies kann erreicht werden, indem der Funktionszeiger manuell zerstört und der Speicher freigegeben wird. Verwenden Sie intelligente Zeiger wie std::unique_ptr oder std::shared_ptr, um den Lebenszyklus von Funktionszeigern automatisch zu verwalten. Binden Sie den Funktionszeiger an das Objekt, und der Objektlebenszyklus verwaltet die Zerstörung des Funktionszeigers. Bei der GUI-Programmierung stellt die Verwendung intelligenter Zeiger oder die Bindung an Objekte sicher, dass Rückruffunktionen zum richtigen Zeitpunkt zerstört werden, wodurch Speicherlecks und Inkonsistenzen vermieden werden.

Wie implementiert man eine Kalenderkomponente mit Vue? Wie implementiert man eine Kalenderkomponente mit Vue? Jun 25, 2023 pm 01:28 PM

Vue ist ein sehr beliebtes Front-End-Framework. Es bietet viele Tools und Funktionen wie Komponentisierung, Datenbindung, Ereignisbehandlung usw., die Entwicklern beim Erstellen effizienter, flexibler und einfach zu wartender Webanwendungen helfen können. In diesem Artikel werde ich vorstellen, wie man eine Kalenderkomponente mit Vue implementiert. 1. Anforderungsanalyse Zunächst müssen wir die Anforderungen dieser Kalenderkomponente analysieren. Ein einfacher Kalender sollte über die folgenden Funktionen verfügen: Anzeige der Kalenderseite des aktuellen Monats; Unterstützung des Wechsels zum vorherigen oder nächsten Monat; Unterstützung beim Klicken auf einen bestimmten Tag;

Grundlagen der VUE3-Entwicklung: Verwendung von Erweiterungen zum Erben von Komponenten Grundlagen der VUE3-Entwicklung: Verwendung von Erweiterungen zum Erben von Komponenten Jun 16, 2023 am 08:58 AM

Vue ist derzeit eines der beliebtesten Front-End-Frameworks, und VUE3 ist die neueste Version des Vue-Frameworks. Im Vergleich zu VUE2 bietet VUE3 eine höhere Leistung und ein besseres Entwicklungserlebnis und ist für viele Entwickler zur ersten Wahl geworden. In VUE3 ist die Verwendung von Erweiterungen zum Erben von Komponenten eine sehr praktische Entwicklungsmethode. In diesem Artikel wird erläutert, wie Erweiterungen zum Erben von Komponenten verwendet werden. Was heißt erweitert? In Vue ist Extends ein sehr praktisches Attribut, das für untergeordnete Komponenten verwendet werden kann, um von ihren Eltern zu erben.

Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Winkelkomponenten und ihre Anzeigeeigenschaften: Nicht-Block-Standardwerte verstehen Mar 15, 2024 pm 04:51 PM

Das Standardanzeigeverhalten für Komponenten im Angular-Framework gilt nicht für Elemente auf Blockebene. Diese Designwahl fördert die Kapselung von Komponentenstilen und ermutigt Entwickler, bewusst zu definieren, wie jede Komponente angezeigt wird. Durch explizites Festlegen der CSS-Eigenschaft display kann die Anzeige von Angular-Komponenten vollständig gesteuert werden, um das gewünschte Layout und die gewünschte Reaktionsfähigkeit zu erreichen.

So öffnen Sie die Einstellungen der alten Version von Win10-Komponenten So öffnen Sie die Einstellungen der alten Version von Win10-Komponenten Dec 22, 2023 am 08:45 AM

Die alten Win10-Komponenten müssen vom Benutzer selbst aktiviert werden, da viele Komponenten standardmäßig geschlossen sind. Der Vorgang ist sehr einfach Versionskomponenten? Öffnen 1. Klicken Sie auf Start und dann auf „Win-System“. 2. Klicken Sie, um die Systemsteuerung aufzurufen. 3. Klicken Sie dann auf das Programm unten. 4. Klicken Sie auf „Win-Funktionen aktivieren oder deaktivieren“. 5. Hier können Sie auswählen, was Sie möchten öffnen

Tokenbasierte Authentifizierung mit Angular und Node Tokenbasierte Authentifizierung mit Angular und Node Sep 01, 2023 pm 02:01 PM

Die Authentifizierung ist einer der wichtigsten Teile jeder Webanwendung. In diesem Tutorial werden tokenbasierte Authentifizierungssysteme und ihre Unterschiede zu herkömmlichen Anmeldesystemen erläutert. Am Ende dieses Tutorials sehen Sie eine voll funktionsfähige Demo, die in Angular und Node.js geschrieben wurde. Traditionelle Authentifizierungssysteme Bevor wir zu tokenbasierten Authentifizierungssystemen übergehen, werfen wir einen Blick auf traditionelle Authentifizierungssysteme. Der Benutzer gibt seinen Benutzernamen und sein Passwort im Anmeldeformular ein und klickt auf „Anmelden“. Nachdem Sie die Anfrage gestellt haben, authentifizieren Sie den Benutzer im Backend, indem Sie die Datenbank abfragen. Wenn die Anfrage gültig ist, wird eine Sitzung mit den aus der Datenbank erhaltenen Benutzerinformationen erstellt und die Sitzungsinformationen werden im Antwortheader zurückgegeben, sodass die Sitzungs-ID im Browser gespeichert wird. Bietet Zugriff auf Anwendungen, die unterliegen

See all articles