Maison > développement back-end > tutoriel php > Communication des composants Vue : utilisation d'écouteurs d'événements pour le transfert de données

Communication des composants Vue : utilisation d'écouteurs d'événements pour le transfert de données

王林
Libérer: 2023-07-07 12:10:02
original
1583 Les gens l'ont consulté

Communication des composants Vue : utilisez des écouteurs d'événements pour le transfert de données

Dans le développement de Vue, la communication entre les composants est un problème courant. Vue fournit une variété de méthodes de communication facultatives, l'une des méthodes couramment utilisées consiste à utiliser des écouteurs d'événements pour le transfert de données. Dans cet article, nous présenterons la méthode d'utilisation des écouteurs d'événements pour la communication des composants et donnerons des exemples de code correspondants.

  1. Le composant parent écoute les événements du composant enfant

Dans Vue, le composant enfant peut déclencher un événement personnalisé via la méthode $emit et transférer des données en passant des paramètres. Le composant parent peut écouter les événements du composant enfant via la directive v-on et obtenir les données transmises dans la fonction de rappel. $emit方法触发一个自定义事件,并通过传递参数实现数据的传递。父组件可以通过v-on指令监听子组件的事件,并在回调函数中获取传递的数据。

下面的示例中,我们创建了一个父组件ParentComponent和一个子组件ChildComponent。子组件中定义了一个按钮,当按钮被点击时,会触发一个名为childEvent的自定义事件,并传递一个参数message。父组件通过v-on指令监听子组件的childEvent事件,并在回调函数中获取传递的参数。

<template>
  <div>
    <child-component v-on:childEvent="handleChildEvent"></child-component>
    <p>从子组件接收到的数据:{{ receivedData }}</p>
  </div>
</template>

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

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      receivedData: ''
    };
  },
  methods: {
    handleChildEvent(data) {
      this.receivedData = data;
    }
  }
};
</script>
Copier après la connexion
<template>
  <div>
    <button @click="triggerEvent">触发事件</button>
  </div>
</template>

<script>
export default {
  methods: {
    triggerEvent() {
      this.$emit('childEvent', 'Hello, Vue!');
    }
  }
};
</script>
Copier après la connexion

当点击子组件中的按钮时,父组件会接收到传递的参数Hello, Vue!,并将其显示在页面上。

  1. 子组件监听父组件事件

除了父组件监听子组件事件外,子组件也可以通过$on方法监听父组件触发的事件。这种方式适用于子组件需要主动获取父组件数据的场景。

以下示例中,我们修改了前面的代码,让父组件在初始化时触发一个parentEvent事件,并传递一个参数data。子组件通过$on方法监听父组件的parentEvent事件,并在回调函数中获取传递的数据。

<!-- 父组件 -->
<template>
  <div>
    <child-component></child-component>
  </div>
</template>

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

export default {
  components: {
    ChildComponent
  },
  mounted() {
    this.$emit('parentEvent', 'Hello, Vue!');
  }
};
</script>
Copier après la connexion
<!-- 子组件 -->
<template>
  <div>
    <p>从父组件接收到的数据:{{ receivedData }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      receivedData: ''
    };
  },
  mounted() {
    this.$parent.$on('parentEvent', this.handleParentEvent);
  },
  methods: {
    handleParentEvent(data) {
      this.receivedData = data;
    }
  }
};
</script>
Copier après la connexion

在这个示例中,父组件在 mounted 钩子中触发了 parentEvent 事件,并传递了参数 Hello, Vue!。子组件通过 $on 方法监听了父组件的 parentEvent

Dans l'exemple suivant, nous créons un composant parent ParentComponent et un composant enfant ChildComponent. Un bouton est défini dans le composant enfant. Lorsque le bouton est cliqué, un événement personnalisé nommé childEvent sera déclenché et un paramètre message sera transmis. Le composant parent écoute l'événement childEvent du composant enfant via la directive v-on et obtient les paramètres passés dans la fonction de rappel.

rrreeerrreee

Lorsque le bouton du composant enfant est cliqué, le composant parent recevra les paramètres transmis Bonjour, Vue ! et les affichera sur la page.

    Les composants enfants écoutent les événements des composants parents

    🎜En plus des composants parents écoutant les événements des composants enfants, les composants enfants peuvent également écouter les événements déclenchés par les composants parents via le $on méthode. Cette méthode convient aux scénarios dans lesquels les composants enfants doivent obtenir activement les données des composants parents. 🎜🎜Dans l'exemple suivant, nous avons modifié le code précédent pour que le composant parent déclenche un événement <code>parentEvent lors de l'initialisation et passe un paramètre data. Le composant enfant écoute l'événement parentEvent du composant parent via la méthode $on et obtient les données transmises dans la fonction de rappel. 🎜rrreeerrreee🎜Dans cet exemple, le composant parent déclenche l'événement parentEvent dans le hook monté, en passant les paramètres Hello, Vue !. Le composant enfant écoute l'événement parentEvent du composant parent via la méthode $on et obtient les données transmises dans la fonction de rappel. 🎜🎜Grâce aux deux méthodes ci-dessus, nous pouvons obtenir une communication flexible dans les composants Vue, afin que les composants puissent se transférer des données et interagir. Vous pouvez choisir la méthode appropriée pour la communication des composants en fonction de scénarios commerciaux spécifiques afin d'améliorer l'organisation et la maintenabilité de votre code. 🎜🎜Résumé : 🎜🎜Cet article présente la méthode d'utilisation des écouteurs d'événements pour la communication des composants et donne des exemples de code correspondants. Que le composant parent écoute les événements du composant enfant ou que le composant enfant écoute les événements du composant parent, ce sont des méthodes de communication de composants courantes dans Vue. De cette façon, nous pouvons obtenir un transfert de données flexible et une interaction entre les composants, offrant ainsi plus de possibilités pour le développement de Vue. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal