Heim > Web-Frontend > View.js > Grundlegendes VUE3-Tutorial: Verschiedene Kommunikationsmöglichkeiten zwischen übergeordneten und untergeordneten Komponenten

Grundlegendes VUE3-Tutorial: Verschiedene Kommunikationsmöglichkeiten zwischen übergeordneten und untergeordneten Komponenten

WBOY
Freigeben: 2023-06-15 22:57:22
Original
5230 Leute haben es durchsucht

Mit der kontinuierlichen Weiterentwicklung moderner Front-End-Frameworks entscheiden sich immer mehr Unternehmen und Entwickler für die Verwendung von Vue zum Erstellen ihrer Benutzeroberflächen. Vue.js ist ein fortschrittliches Framework zum Erstellen von Benutzeroberflächen, das eine flexible Entwicklungsmethode zum schnellen Erstellen hochwertiger Einzelseitenanwendungen bietet.

In Vue.js sind Komponenten das Kernkonzept für die Erstellung von Benutzeroberflächen. Eine Vue.js-Komponente ist ein eigenständiges, wiederverwendbares Codemodul mit einem Lebenszyklus. Eine Komponente kann aus vielen anderen Komponenten bestehen, die möglicherweise kommunizieren und interagieren müssen. In diesem Artikel werden verschiedene Möglichkeiten zur Kommunikation zwischen übergeordneten und untergeordneten Komponenten in Vue.js vorgestellt.

  1. Props-Eigenschaftsübergabe

Props ist eine Möglichkeit, Daten von übergeordneten Komponenten an untergeordnete Komponenten zu übergeben. In Vue.js können übergeordnete Komponenten Daten über Eigenschaften an untergeordnete Komponenten übergeben. Untergeordnete Komponenten können diese Eigenschaften empfangen und diese Werte zum Rendern ihrer eigenen Vorlagen verwenden.

In der übergeordneten Komponente können Sie die v-bind-Anweisung verwenden, um den Wert an das props-Attribut der untergeordneten Komponente zu binden:

<template>
  <div>
    <child-component :message="'Hello world'"></child-component>
  </div>
</template>
Nach dem Login kopieren

In der untergeordneten Komponente können Sie die von der übergeordneten Komponente übergebenen Daten über das props-Attribut empfangen :

Vue.component('child-component', {
  props: ['message'],
  template: '<div>{{ message }}</div>'
})
Nach dem Login kopieren

Durch das Props-Attribut kann der Datenfluss zwischen übergeordneten und untergeordneten Komponenten klar ausgedrückt werden. Diese Methode ist eine sehr häufige Kommunikationsmethode zwischen übergeordneten und untergeordneten Komponenten in Vue.js.

  1. $emit benutzerdefiniertes Ereignis

In Vue.js verfügt jede Vue-Instanz über einen Ereignisbus, und Sie können $emit verwenden, um ein benutzerdefiniertes Ereignis auszulösen. Übergeordnete Komponenten können benutzerdefinierte Ereignisse definieren und $emit verwenden, um diese Ereignisse in untergeordneten Komponenten auszulösen. Unterkomponenten können diese Ereignisse über $on abhören und entsprechende Vorgänge ausführen.

In der übergeordneten Komponente können Sie $emit verwenden, um ein benutzerdefiniertes Ereignis zu definieren:

new Vue({
  el: '#app',
  methods: {
    showMessage() {
      this.$emit('message');
    }
  }
})
Nach dem Login kopieren

In der untergeordneten Komponente können Sie $on verwenden, um dieses benutzerdefinierte Ereignis abzuhören:

Vue.component('child-component', {
  template: '<div v-on:message="showMessage">Child message</div>',
  methods: {
    showMessage() {
      // 处理点击事件
    }
  }
})
Nach dem Login kopieren

By $emit benutzerdefiniertes Ereignis, die untergeordneten Komponenten kann zu Kommunikationszwecken Nachrichten an übergeordnete Komponenten senden.

  1. $parent/$children

In Vue.js verfügt jede Komponente über eine $parent-Eigenschaft und eine $children-Eigenschaft. Diese beiden Eigenschaften ermöglichen Komponenten den direkten Zugriff auf ihre übergeordneten und untergeordneten Komponenten. Diese Methode ist einfacher, aber manche Leute finden sie unelegant.

  1. Verwenden von $refs

In Vue.js hat jede Komponente ein $refs-Attribut. Auf alle registrierten Unterkomponenten kann über $refs zugegriffen werden. Dieses Attribut ermöglicht der übergeordneten Komponente den direkten Zugriff auf die untergeordnete Komponente und den direkten Aufruf ihrer Methoden und Eigenschaften.

In der übergeordneten Komponente können Sie $refs verwenden, um auf die untergeordnete Komponente zuzugreifen und deren Methoden aufzurufen:

new Vue({
  el: "#app",
  methods: {
    handleClick() {
      this.$refs.childComponent.handleClick();
    }
  },
  components: {
    childComponent
  }
})
Nach dem Login kopieren

In der untergeordneten Komponente können Sie eine handleClick-Methode definieren:

Vue.component('child-component', {
  methods: {
    handleClick() {
      // 处理点击事件
    }
  }
})
Nach dem Login kopieren

$refs ermöglicht der übergeordneten Komponente den direkten Zugriff auf Methoden und Eigenschaften der untergeordneten Komponente, aber Sie müssen bei der Verwendung vorsichtig sein, da der Wert von $refs möglicherweise undefiniert ist.

Zusammenfassung

In Vue.js sind Komponenten das Kernkonzept für die Erstellung von Benutzeroberflächen. Für die Kommunikation zwischen übergeordneten und untergeordneten Komponenten stellt Vue.js eine Vielzahl von Methoden bereit, z. B. Props, benutzerdefinierte Ereignisse, $parent/$children, $refs usw. In der tatsächlichen Entwicklung müssen wir eine geeignete Methode auswählen, um die Kommunikation zwischen Komponenten entsprechend den spezifischen Umständen zu implementieren. Gleichzeitig können wir mit diesen Methoden auch flexiblere und wiederverwendbare Komponenten erstellen, um die Entwicklungseffizienz und das Benutzererlebnis zu verbessern.

Das obige ist der detaillierte Inhalt vonGrundlegendes VUE3-Tutorial: Verschiedene Kommunikationsmöglichkeiten zwischen übergeordneten und untergeordneten Komponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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