Heim  >  Artikel  >  Web-Frontend  >  Analyse von Beispielen für die Übertragung von Komponentenwerten in Vue-Dokumenten

Analyse von Beispielen für die Übertragung von Komponentenwerten in Vue-Dokumenten

WBOY
WBOYOriginal
2023-06-20 20:26:04649Durchsuche

Bei der Vue-Entwicklung ist die Kommunikation zwischen Komponenten ein sehr wichtiger Teil. Durch die Weitergabe von Daten können Komponenten besser zusammenarbeiten und die Wiederverwendbarkeit und Zusammensetzbarkeit von Code zwischen Komponenten verbessert werden. Bei der Übertragung von Werten zwischen Komponenten gibt es aufgrund der sehr flexiblen Eigenschaften von Vue viele Methoden, um die Datenübertragung zwischen Komponenten zu erreichen.

In diesem Artikel werden die gängigen Komponentenwertübertragungsmethoden in Vue vorgestellt und ihre Verwendung anhand eines Beispiels demonstriert.

  1. Übertragung von Props-Attributwerten
    In Vue können übergeordnete Komponenten Daten über Requisiten nach unten an untergeordnete Komponenten weitergeben. Die untergeordnete Komponente erhält den von der übergeordneten Komponente übergebenen Wert durch Festlegen der Option props. Requisiten können beliebige Wertetypen sein, einschließlich primitiver Typen, Objekte oder Arrays.

Zuerst erstellen wir eine übergeordnete Komponente mit dem Namen parent.vue. Der Code lautet wie folgt:

<template>
  <div>
    <h2>父组件</h2>
    <p>我是父组件的信息:{{parentInfo}}</p>
    <child :childInfo="parentInfo"></child>
  </div>
</template>

<script>
import Child from './child.vue'
export default {
  name: 'Parent',
  components: {
    Child
  },
  data() {
    return {
      parentInfo: '我是来自父组件的信息'
    }
  }
}
</script>

Dann erstellen wir eine untergeordnete Komponente. Der Inhalt der untergeordneten Komponente lautet:

<template>
  <div>
    <h2>子组件</h2>
    <p>我是子组件的信息: {{childInfo}}</p>
  </div>
</template>

<script>
export default {
  name: 'Child',
  props: ['childInfo']
}
</script>

In der übergeordneten Komponente übergeben wir Die Informationen der übergeordneten Komponente werden an das Attribut childInfo der untergeordneten Komponente übergeben, um die Daten zu übergeben. In der übergeordneten Komponente verwende ich die Daten der übergeordneten Komponente, um meine eigenen Informationen darzustellen und diese auch an die untergeordnete Komponente weiterzugeben.

In der untergeordneten Komponente verwenden wir die Option props, um Daten von der übergeordneten Komponente zu empfangen. Untergeordnete Komponenten rendern ihre eigenen Informationen mithilfe von childInfo, und der childInfo-Wert stammt von der übergeordneten Komponente.

Im obigen Code verwenden wir Requisiten zum Übergeben von Daten und Requisiten in untergeordneten Komponenten zum Empfangen von Daten. Die Kommunikation zwischen Komponenten ermöglicht auf diese Weise den Datenaustausch zwischen Komponenten und der Datenstatus zwischen Komponenten kann auf eine einzige Weise verwaltet werden.

  1. $emit- und $on-Methoden übergeben Werte

In Vue können wir auch die emit-Methode und die on-Methode für die Komponentenkommunikation verwenden. Die Emit-Methode wird zum Senden von Nachrichten und die On-Methode zum Empfangen von Nachrichten verwendet. Diese Methode wird normalerweise zwischen Komponenten verwendet, bei denen es sich nicht um eine Eltern-Kind-Beziehung handelt.

Zuerst erstellen wir eine Vue-Instanz mit dem Namen event.vue. Der Code lautet wie folgt:

<template>
  <div>
    <h2>组件间事件通信示例</h2>
    <child></child>
    <grand-child></grand-child>
  </div>
</template>

<script>
import Vue from 'vue'
import Child from './child.vue'
import GrandChild from './grandChild.vue'

export default {
  name: 'Event',
  components: {
    Child,
    GrandChild
  },
  created() {
    //使用$on监听来自子组件的事件
    this.$on('sendMsg', function(message) {
      console.log('父组件接收到来自子组件的消息:' + message)
    })
  }
}
</script>

In der übergeordneten Komponente warten wir über die $on-Methode auf das Eintreffen des Ereignisses und drucken die Nachricht nach Erhalt aus Ereignis. Die spezifische Verwendung wird in der erstellten Deklarationszyklus-Hook-Funktion implementiert.

Dann schauen wir uns die Code-Implementierung der untergeordneten Komponente an:

<template>
  <div>
    <h3>子组件</h3>
    <button @click="handleClick">发送消息</button>
  </div>
</template>

<script>
export default {
  name: 'Child',
  methods: {
    handleClick() {
      //使用$emit发送事件
      this.$emit('sendMsg', '我是来自子组件的信息')
    }
  }
}
</script>

Auf diese Weise wird beim Klicken auf die Schaltfläche in der untergeordneten Komponente die $emit-Methode ausgelöst und der Ereignisname „sendMsg“ verwendet Um die Nachricht „Ich bin von der untergeordneten Komponente“ an die übergeordnete Komponente zu senden, kann die übergeordnete Komponente über die $on-Methode das Eintreffen von Ereignissen abhören und die entsprechenden Vorgänge abschließen.

Ähnlich können wir auch die Kommunikation zwischen zwei beliebigen Komponenten implementieren, die nicht in einer Eltern-Kind-Beziehung stehen. Durch diese Methode werden die auslösenden Ereignisse und Abhörereignisse der Komponenten lose gekoppelt. Durch die Verwendung der emit- und on-Methoden kann eine flexiblere Komponentenkommunikation erreicht werden.

Zusammenfassend ist die Kommunikation zwischen Komponenten auch ein sehr wichtiger Teil der Vue-Entwicklung. Die Beherrschung verschiedener Wertübergabemethoden ist die Grundlage für das Schreiben von Komponenten. In diesem Artikel werden anhand konkreter Codebeispiele zwei gängige Wertübergabemethoden in Vue vorgestellt: props-Wertübergabe und $emit/$on-Wertübergabe. Diese Methoden können die Kommunikation zwischen Komponenten effektiv koordinieren und die Wiederverwendbarkeit und Zusammensetzbarkeit von Code verbessern.

Das obige ist der detaillierte Inhalt vonAnalyse von Beispielen für die Übertragung von Komponentenwerten in Vue-Dokumenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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