Heim >Web-Frontend >Front-End-Fragen und Antworten >So übergeben Sie Parameter an irrelevante Komponenten in Vue

So übergeben Sie Parameter an irrelevante Komponenten in Vue

WBOY
WBOYOriginal
2023-05-08 10:53:06720Durchsuche

In Vue können Komponenten normalerweise Daten über Requisitenattribute weitergeben, aber manchmal müssen wir Daten zwischen nicht verwandten Komponenten weitergeben.

Zum Beispiel müssen wir möglicherweise Daten von einer Komponente an eine andere weitergeben, aber die beiden Komponenten haben möglicherweise keine Verbindung. In diesem Fall können wir das Ereignissystem von Vue verwenden, um die Kommunikation zwischen nicht übergeordneten und untergeordneten Komponenten zu implementieren. Konkret können wir die Methoden $on und $emit in Vue verwenden, um Ereignisse zu senden und zu empfangen. Die

$on-Methode wird verwendet, um ein benutzerdefiniertes Ereignis in der aktuellen Komponente zu registrieren. Wenn das Ereignis ausgelöst wird, kann die aktuelle Komponente den entsprechenden Vorgang ausführen. Die Methode $emit wird verwendet, um ein benutzerdefiniertes Ereignis auszulösen und die angegebenen Parameter an alle Komponenten zu übergeben, die das Ereignis überwachen.

Das Beispiel sieht wie folgt aus:

<!-- 组件A -->
<template>
  <div>
    <!-- 触发事件 -->
    <button @click="sendDataToB">传递数据给组件B</button>
  </div>
</template>

<script>
export default {
  methods: {
    sendDataToB() {
      // 发送事件
      this.$emit('sendData', '这是来自组件A的数据')
    }
  }
}
</script>
<!-- 组件B -->
<template>
  <div>
    <!-- 监听事件并接收数据 -->
    <div>收到的数据:{{ receivedData }}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      receivedData: ''
    }
  },
  mounted() {
    // 监听事件
    this.$on('sendData', (data) => {
      this.receivedData = data
    })
  }
}
</script>

In diesem Beispiel haben wir ein benutzerdefiniertes Ereignis mit dem Namen „sendData“ in Komponente A registriert und die Methode $emit verwendet, um das Ereignis auszulösen. Die Methode $emit übergibt die Zeichenfolge „Dies sind Daten von Komponente A“ als Parameter an alle Komponenten, die das Ereignis abhören.

In Komponente B verwenden wir die $on-Methode im gemounteten Lebenszyklus-Hook, um das Ereignis „sendData“ abzuhören und die empfangenen Daten von Komponente B in der Antwortfunktion zu aktualisieren. Zu diesem Zeitpunkt kann Komponente B die von Komponente A übergebenen Daten empfangen.

Es ist zu beachten, dass die Kommunikation zwischen nicht übergeordneten und untergeordneten Komponenten mithilfe eines speziellen Ereignissystems implementiert werden muss. Dies kann eine unendliche Verschachtelung von Puppen zwischen Komponenten vermeiden und die Wartung des Codes erschweren. Daher sollten wir in der tatsächlichen Entwicklung versuchen, die Kommunikation zwischen Komponenten auf Eltern-Kind-Komponenten zu beschränken.

Das obige ist der detaillierte Inhalt vonSo übergeben Sie Parameter an irrelevante Komponenten in Vue. 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