Heim  >  Artikel  >  Backend-Entwicklung  >  Vue-Komponentenkommunikation: Verwendung von $on für die benutzerdefinierte Ereignisüberwachung

Vue-Komponentenkommunikation: Verwendung von $on für die benutzerdefinierte Ereignisüberwachung

王林
王林Original
2023-07-08 13:37:371620Durchsuche

Vue-Komponentenkommunikation: Verwenden Sie $on für die benutzerdefinierte Ereignisüberwachung.

In Vue sind Komponenten unabhängig und jede Komponente hat ihren eigenen Lebenszyklus und ihre eigenen Daten. Im eigentlichen Entwicklungsprozess ist jedoch die Kommunikation zwischen Komponenten unvermeidlich. Vue bietet eine sehr flexible und effiziente Möglichkeit der Komponentenkommunikation: benutzerdefiniertes Event-Listening.

Vues benutzerdefinierter Event-Listening-Mechanismus wird basierend auf dem Publish-Subscribe-Modell implementiert. Sie können ein benutzerdefiniertes Ereignis in einer Komponente abhören, indem Sie die Methode $on der Vue-Instanz verwenden, und das Ereignis in anderen Komponenten über die Methode $emit auslösen. Im Folgenden stellen wir detailliert vor, wie man $on für die benutzerdefinierte Ereignisüberwachung verwendet.

Erstellen wir zunächst ein einfaches Beispiel für eine übergeordnete/untergeordnete Komponente. Die übergeordnete Komponente ist App.vue und die untergeordnete Komponente ist Child.vue.

App.vue:

<template>
  <div>
    <h2>App Component</h2>
    <button @click="notifyChild">通知子组件</button>
    <Child></Child>
  </div>
</template>

<script>
  import Child from './Child.vue';

  export default {
    name: 'App',
    components: {
      Child
    },
    methods: {
      notifyChild() {
        this.$emit('customEvent', 'Hello Child Component!');
      }
    }
  }
</script>

Child.vue:

<template>
  <div>
    <h2>Child Component</h2>
    <p>{{ message }}</p>
  </div>
</template>

<script>
  export default {
    name: 'Child',
    data() {
      return {
        message: ''
      }
    },
    mounted() {
      this.$parent.$on('customEvent', this.handleCustomEvent);
    },
    beforeDestroy() {
      this.$parent.$off('customEvent', this.handleCustomEvent);
    },
    methods: {
      handleCustomEvent(message) {
        this.message = message;
      }
    }
  }
</script>

In der übergeordneten Komponente App.vue lösen wir durch Klicken auf die Schaltfläche ein benutzerdefiniertes Ereignis customEvent aus und übergeben eine Nachricht an die untergeordnete Komponente. customEvent,并传递一个消息给子组件。

子组件Child.vue中,我们在mounted生命周期钩子函数中使用this.$parent.$on方法监听父组件中的自定义事件customEvent。并在beforeDestroy生命周期钩子函数中使用this.$parent.$off方法取消监听。在方法handleCustomEvent中,我们将父组件传递的消息赋值给子组件的message。

通过以上代码示例,我们实现了父子组件之间的通信。当点击父组件中的按钮时,子组件会接收到父组件传递的消息并将其显示出来。

除了父子组件之间的通信,我们还可以在任意两个组件之间建立通信。只需在其中一个组件中使用this.$on监听自定义事件,然后在另一个组件中使用this.$emit

In der untergeordneten Komponente Child.vue verwenden wir die Methode this.$parent.$on in der gemounteten Lebenszyklus-Hook-Funktion, um das benutzerdefinierte Ereignis customEvent abzuhören die übergeordnete Komponente. Und verwenden Sie die Methode this.$parent.$off in der Lebenszyklus-Hook-Funktion beforeDestroy, um das Abhören abzubrechen. In der Methode handleCustomEvent ordnen wir die von der übergeordneten Komponente übergebene Nachricht der Nachricht der untergeordneten Komponente zu.

Durch das obige Codebeispiel haben wir die Kommunikation zwischen übergeordneten und untergeordneten Komponenten erreicht. Wenn Sie auf die Schaltfläche in der übergeordneten Komponente klicken, empfängt die untergeordnete Komponente die von der übergeordneten Komponente übergebene Nachricht und zeigt sie an. 🎜🎜Zusätzlich zur Kommunikation zwischen übergeordneten und untergeordneten Komponenten können wir auch die Kommunikation zwischen zwei beliebigen Komponenten herstellen. Verwenden Sie einfach this.$on in einer Komponente, um das benutzerdefinierte Ereignis abzuhören, und verwenden Sie dann this.$emit, um das Ereignis in einer anderen Komponente auszulösen. 🎜🎜Zusammenfassend lässt sich sagen, dass wir durch die $on-Methode von Vue zur benutzerdefinierten Ereignisüberwachung eine flexible und effiziente Komponentenkommunikation erreichen können. Unabhängig davon, ob es sich um die Kommunikation zwischen übergeordneten und untergeordneten Komponenten oder um die Kommunikation zwischen zwei beliebigen Komponenten handelt, kann dies problemlos gehandhabt werden. Ich hoffe, dieser Artikel hilft Ihnen bei Problemen mit der Komponentenkommunikation in der Vue-Entwicklung. 🎜

Das obige ist der detaillierte Inhalt vonVue-Komponentenkommunikation: Verwendung von $on für die benutzerdefinierte Ereignisüberwachung. 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