Detaillierte Erläuterung der Kommunikation zwischen Angular-Eltern- und -Kindkomponenten

Detaillierte Erläuterung der Kommunikation zwischen Angular-Eltern- und -Kindkomponenten

Verwendete APIs

Input - definiert zulässige Eigenschaften in der untergeordneten Komponente, die von der übergeordneten Komponente verwendet werden können, um Daten an die untergeordnete Komponente zu übergeben

Output – Die Ausgabeeigenschaft der untergeordneten Komponente. Diese Eigenschaft muss vom Ereignistyp „EventEmitter“ sein, um die übergeordnete Komponente zu benachrichtigen, dass sie entsprechende Aktionen ausführen soll.

EventEmitter – wird in Komponenten mit @Output-Direktive verwendet, um benutzerdefinierte Ereignisse synchron oder asynchron auszugeben und Handler für diese Ereignisse zu registrieren, indem Instanzen abonniert werden.

Einfaches Beispiel

Rendern Sie Unterkomponenten in einer Liste. Klicken Sie auf eine Unterkomponente, um die übergeordnete Komponente zu benachrichtigen, dass eine Operation ausgeführt werden soll.

person.ts

Exportschnittstelle Person {
  Name: Zeichenfolge;
  Alter: Anzahl;
  Geschlecht: Zeichenfolge;
}

Übergeordnete Komponente

importiere { Komponente, OnInit } von '@angular/core';
importiere { Person } von './person';
@Komponente({
  Selektor: ‚app-comp-parent‘,
  Vorlage: `
    <app-comp-untergeordnetes
      *ngFor="Person von Personenliste lassen"
      (itemClick)="beiItemClick($event)"
      [data]="Person"
    ></app-comp-child>
  `,
})
Exportklasse CompParentComponent implementiert OnInit {
  personList: Person[] = [
    { Name: '张三', Alter: 21, Geschlecht: '男' },
    { Name: 'Li Si', Alter: 25, Geschlecht: 'Männlich' },
    { Name: '李莉', Alter: 20, Geschlecht: '女' },
  ];
  Konstruktor(){ }
  ngOnInit(): void { }
  beiArtikelKlick(Artikel: Person){
    console.log('Klick-Person: ', Element);
  }
}

Unterkomponenten

importiere { Komponente, EventEmitter, Eingabe, OnInit, Ausgabe } von '@angular/core';
importiere { Person } von './person';
@Komponente({
  Selektor: ‚app-comp-child‘,
  Vorlage: `
    <div (Klick)="itemClick.emit(Daten)">
      Name: {{ data.name }}
      Alter: {{ data.age }}
      Geschlecht: {{ data.sex }}
    </div>
  `,
})
Exportklasse CompChildComponent implementiert OnInit {
  @Input() Daten!: Person;
  @Output() itemClick = neuer EventEmitter();
  Konstruktor(){ }
  ngOnInit(): void { }
}

Wirkung

Rendern

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können!

Das könnte Sie auch interessieren:
  • Beispiel für die Kommunikation zwischen Angular2-Eltern- und -Kindkomponenten
  • Implementierung der gemeinsamen Servicekommunikation zwischen übergeordneten und untergeordneten Angular 2-Komponenten
  • Beispiel für die Datenkommunikation zwischen Angular2-Eltern- und -Kindkomponenten

<<:  Reiner CSS-Code zum Erzielen eines Drag-Effekts

>>:  Eine detaillierte Einführung in die Speicherverwaltung und -adressierung unter Linux

Artikel empfehlen

Detaillierte Beispiele für die Ausführung von Zabbix-Remotebefehlen

Inhaltsverzeichnis eins. Umfeld zwei. Vorsichtsma...

Beispielcode zum Festlegen des Beschriftungsstils mithilfe des CSS-Selektors

CSS-Selektoren Durch Festlegen des Stils für das ...

Verwendung von Vue3-Seiten, Menüs und Routen

Inhaltsverzeichnis 1. Klicken Sie auf das Menü, u...

Implementierung der Vue-Einzeldateikomponente

Ich habe kürzlich über Vue gelesen. Ich habe eine...

Gängige Stile von CSS-Animationseffekten

Animation Definieren Sie eine Animation: /*Legen ...

CSS implementiert problemlos Container auf Blockebene mit festem Verhältnis

Beim Entwerfen eines H5-Layouts werden Sie normal...

Was ist eine HTML-Datei? So öffnen Sie eine HTML-Datei

HTML steht für Hypertext Markup Language. Heutzut...

MySQL-Optimierung Verbindungsoptimierung

Im Artikel MySQL-Optimierung: Cache-Optimierung w...

Der Unterschied zwischen this.$router und this.$route in Vue und der push()-Methode

Im offiziellen Dokument heißt es: Durch Einfügen ...

So entfernen Sie den gepunkteten Rahmen beim Klicken auf einen Link in FireFox

Ich bin heute auf mehrere Browserkompatibilitätsp...

Docker View-Prozess, Speicher und Cup-Verbrauch

Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...

Interpretation der Vue-Komponentenregistrierungsmethode

Inhaltsverzeichnis Überblick 1. Globale Registrie...