


Eine kurze Diskussion über den Lebenszyklus von Komponenten in 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.
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 } }
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 SchnittstelleOnInit
.ngOnInit()
对应 接口OnInit
。2) 可以实现多个钩子接口,例如
export class DemoComponent implements OnInit, OnDestroy {<!-- -->
4. 主要生命周期事件
4.1. 初始化事件 ngOnInit()
使用 ngOnInit() 方法执行以下初始化任务:
逻辑稍复杂,不适合放到构造函数中的逻辑
初始化中的数据访问逻辑
处理需要根据父组件传入参数(@Input)进行初始化的逻辑
4.2. 实例销毁 ngOnDestroy()
把清理逻辑放进 ngOnDestroy() 中,这个逻辑就必然会在 Angular 销毁该指令之前运行。下列逻辑可言放到ngOnDestroy():
取消订阅可观察对象和 DOM 事件。
停止 interval 计时器。
反注册该指令在全局或应用服务中注册过的所有回调。
释放其他占有的资源。
5. 总结
-
使用生命周期事件钩子函数,别忘了类名后面
2) Es können mehrere Hook-Schnittstellen implementiert werden, z. B.implements
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 Schnittstelleimplements
, 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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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

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.

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;

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.

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.

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

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
