Inhaltsverzeichnis
Komponentenkommunikation
Heim Web-Frontend js-Tutorial Eine kurze Diskussion über die Kommunikation zwischen übergeordneten und untergeordneten Angular-Komponenten

Eine kurze Diskussion über die Kommunikation zwischen übergeordneten und untergeordneten Angular-Komponenten

Oct 18, 2021 am 10:11 AM
angular 父子组件通信 组件通信

Dieser Artikel führt Sie zum Verständnis der Komponentenkommunikation in Angular und stellt die Methoden der Kommunikation zwischen übergeordneten Komponenten und untergeordneten Komponenten sowie der Kommunikation zwischen untergeordneten Komponenten und übergeordneten Komponenten vor. Ich hoffe, dass er für alle hilfreich ist!

Eine kurze Diskussion über die Kommunikation zwischen übergeordneten und untergeordneten Angular-Komponenten

Komponentenkommunikation

Die Komponente ist völlig unabhängig, daher werden die Daten untereinander nicht gemeinsam genutzt. Wenn Sie Daten zwischen Komponenten teilen möchten, müssen Sie die Kommunikation zwischen Komponenten implementieren. [Empfohlene verwandte Tutorials: „angular Tutorial“]

Kommunikation zwischen Komponenten

  • Übergeordnete Komponente kommuniziert mit untergeordneter Komponente

  • untergeordnete Komponente kommuniziert mit übergeordneter Komponente

ng6 Um eine komponentenübergreifende Kommunikation zu erreichen Kommunikation, es bietet Durchsatz: Eingabe, Ausgabe

Die übergeordnete Komponente kommuniziert mit der untergeordneten Komponente

ng6 wird basierend auf ts implementiert, daher müssen die Kommunikationsdaten den Typ definieren (die interne Struktur verstehen, Speicherplatz zuweisen).

Die übergeordnete Komponente kommuniziert mit der untergeordneten Komponente, die Unterkomponente ist der Empfänger. Verwenden Sie daher den Eingabedurchsatz

, um die Kommunikation von der übergeordneten Komponente zur Unterkomponente in 6 Schritten zu implementieren

Der erste Schritt Übergeben Sie in der übergeordneten Komponentenvorlage Daten an die Unterkomponente. Wenn die Daten dynamisch sind, können Sie sie mit [] syntaktischem Zucker ändern. Schritt 2: Definieren Sie die Datenmodellklasse (wenn die Daten sehr einfach sind). , Sie können diesen Schritt weglassen)

Sie können auch die ng-Direktive verwenden, um die Modellklasse zu definieren

ng class 类名
Nach dem Login kopieren
Namenskonvention für Modellklassen: Wir können sie als .model.ts-Datei definieren. Sie können die Datei auch direkt im Modellverzeichnis ablegen und als .ts-Datei definieren

Schritt 3

In der Unterkomponente die Modellklasse einführen

Schritt 4 In der Unterkomponente den Durchsatz einführen Eingabe: Fünf Schritte: Es gibt zwei Möglichkeiten, Daten über das Durchsatzgerät zu empfangen Metainformationen der Komponenteneingaben erhalten

In der Annotationsklasse: Eingaben: [Attribute data]

In der Komponente: Attribute data: Model class;

Schritt 6
    Daten verwenden: Da die Daten der Komponente selbst hinzugefügt werden, können sie sowohl in der Komponente als auch in der Vorlage verwendet werden.
  • Beispiel:

    @Input() 数据名称: 模型类;
    Nach dem Login kopieren
    Die untergeordnete Komponente kommuniziert mit der übergeordneten Komponente Die untergeordnete Komponente kommuniziert mit der implementierten übergeordneten Komponente basierend auf benutzerdefinierten Ereignissen. Bei untergeordneten Komponenten ist es der Herausgeber. Verwenden Sie daher den Ausgabedurchsatz
  • , um die Kommunikation der untergeordneten Komponente mit der übergeordneten Komponente in sechs Schritten zu implementieren

[属性数据]

组件中:属性数据: 模型类;

第六步 使用数据,由于数据被添加给组件自身了,因此不论是在组件中,还是在模板中都可以使用

举例:

// 4 引入吞吐器
import { Component, OnInit, Input } from '@angular/core';
// 3 引入模型类
import { Data } from '../../models/data';
@Component({
    selector: 'app-inputs',
    templateUrl: './inputs.component.html',
    styleUrls: ['./inputs.component.css'],
    // 5 通过元信息接收
    inputs: ['color', 'data']
})
export class InputsComponent implements OnInit {
    // 5 接收数据
    // @Input() data: Data;
    // @Input() color: string;
    // 声明类型
    data: Data;
    color: string;
    constructor() {
        // 6 组件中使用
        console.log(this)
    }
    ngOnInit() {
    }
}
Nach dem Login kopieren

子组件向父组件通信

子组件向父组件通信是基于自定义事件实现的。对于子组件来说,是发布方,因此要使用Ouput吞吐器

实现子组件向父组件通信分成六步

第一步 在父组件模板中,模拟DOM事件,为子组件元素绑定父组件的方法,使用()语法糖

例如 (demo)="dealDemo($event)"

为了传递数据,要添加$event

第二步 在子组件中,引入吞吐器 Output

第三步 在子组件中,引入EventEmitter事件模块

第四步 为子组件创建事件对象,有两种方式

  • 第一种 通过Output吞吐器注册

@Output() 属性名称 = new EventEmitter()
Nach dem Login kopieren
  • 第二种 还可以通过注解的元信息outputs接收

在注解中,注册属性 outputs: [属性名称]

组件中,创建事件对象 属性名称 = new EventEmitter()Der erste Schritt

Simulieren Sie in der Vorlage für die übergeordnete Komponente DOM-Ereignisse für die untergeordnete Komponente Um ein Element an eine übergeordnete Komponente zu binden, verwenden Sie () Syntaxzucker

Zum Beispiel (demo)="dealDemo($event)"

Um Daten zu übergeben, fügen Sie $event hinzu

Der zweite Schritt

Im untergeordneten Element Komponente, führen Sie Throughput Output ein

Schritt 3

Führen Sie in der Unterkomponente das EventEmitter-Ereignismodul ein 🎜🎜🎜Schritt 4🎜 Es gibt zwei Möglichkeiten, Ereignisobjekte für Unterkomponenten zu erstellen🎜🎜🎜🎜Die erste wird über registriert Ausgabedurchsatz 🎜 🎜🎜
import { Component, OnInit, Output, EventEmitter } from '@angular/core';
@Component({
    selector: 'app-outputs',
    templateUrl: './outputs.component.html',
    styleUrls: ['./outputs.component.css'],
    // 元信息注册事件对象
    outputs: ['sendMessage']
})
export class OutputsComponent implements OnInit {
    // 4 注册事件对象
    // @Output() sendMessage = new EventEmitter();
    // 实例化
    sendMessage = new EventEmitter();
    constructor() { }
    ngOnInit() {
    }
    // 事件回调函数
    demo() {
        // console.log(111, this)
        // 5 点击按钮的时候,向父组件发布消息
        this.sendMessage.emit({
            msg: 'hello菜鸟',
            color: 'red'
        })
    }
}
Nach dem Login kopieren
🎜🎜🎜Der zweite Typ kann auch über die Metainformationsausgaben der Annotation empfangen werden🎜🎜🎜🎜Registrieren Sie in der Annotation die Attributausgaben: [Attributname]🎜 🎜Erstellen Sie in der Komponente das EreignisobjektAttribute name = new EventEmitter()🎜🎜🎜Schritt 5🎜 Veröffentlichen Sie in der untergeordneten Komponente die Nachricht über die Emit-Methode des Ereignisobjekts und den Parameter die übergebenen Daten🎜🎜🎜Schritt 6🎜 Empfangen Sie in der übergeordneten Komponente die von der untergeordneten Komponente über die Methode der übergeordneten Komponente übergebenen Daten🎜rrreee🎜Weitere programmierbezogene Kenntnisse finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Kommunikation zwischen übergeordneten und untergeordneten Angular-Komponenten. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

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)

Detaillierte Erläuterung des Angular Learning State Managers NgRx Detaillierte Erläuterung des Angular Learning State Managers NgRx May 25, 2022 am 11:01 AM

Dieser Artikel vermittelt Ihnen ein detailliertes Verständnis des Angular-Statusmanagers NgRx und stellt Ihnen die Verwendung von NgRx vor. Ich hoffe, er wird Ihnen hilfreich sein!

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

Ein Artikel über serverseitiges Rendering (SSR) in Angular Ein Artikel über serverseitiges Rendering (SSR) in Angular Dec 27, 2022 pm 07:24 PM

Kennen Sie Angular Universal? Es kann dazu beitragen, dass die Website eine bessere SEO-Unterstützung bietet!

Wie man PHP und Angular für die Frontend-Entwicklung verwendet Wie man PHP und Angular für die Frontend-Entwicklung verwendet May 11, 2023 pm 04:04 PM

Mit der rasanten Entwicklung des Internets wird auch die Front-End-Entwicklungstechnologie ständig verbessert und iteriert. PHP und Angular sind zwei Technologien, die in der Frontend-Entwicklung weit verbreitet sind. PHP ist eine serverseitige Skriptsprache, die Aufgaben wie die Verarbeitung von Formularen, die Generierung dynamischer Seiten und die Verwaltung von Zugriffsberechtigungen übernehmen kann. Angular ist ein JavaScript-Framework, mit dem Single-Page-Anwendungen entwickelt und komponentenbasierte Webanwendungen erstellt werden können. In diesem Artikel erfahren Sie, wie Sie PHP und Angular für die Frontend-Entwicklung verwenden und wie Sie diese kombinieren

Eine kurze Analyse der Verwendung des Monaco-Editors in Angular Eine kurze Analyse der Verwendung des Monaco-Editors in Angular Oct 17, 2022 pm 08:04 PM

Wie verwende ich den Monaco-Editor in Angular? Der folgende Artikel dokumentiert die Verwendung des Monaco-Editors in Angular, der kürzlich in einem Unternehmen verwendet wurde. Ich hoffe, dass er für alle hilfreich sein wird!

Eine kurze Analyse unabhängiger Komponenten in Angular und deren Verwendung Eine kurze Analyse unabhängiger Komponenten in Angular und deren Verwendung Jun 23, 2022 pm 03:49 PM

Dieser Artikel führt Sie durch die unabhängigen Komponenten in Angular, wie Sie eine unabhängige Komponente in Angular erstellen und wie Sie vorhandene Module in die unabhängige Komponente importieren. Ich hoffe, er wird Ihnen hilfreich sein!

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.

Was soll ich tun, wenn das Projekt zu groß ist? Wie teilt man Angular-Projekte sinnvoll auf? Was soll ich tun, wenn das Projekt zu groß ist? Wie teilt man Angular-Projekte sinnvoll auf? Jul 26, 2022 pm 07:18 PM

Das Angular-Projekt ist zu groß. Wie kann man es sinnvoll aufteilen? Der folgende Artikel zeigt Ihnen, wie Sie Angular-Projekte sinnvoll aufteilen. Ich hoffe, er ist hilfreich für Sie!

See all articles