Maison > interface Web > Voir.js > Utiliser $listeners pour transmettre les fonctions de gestion d'événements dans Vue

Utiliser $listeners pour transmettre les fonctions de gestion d'événements dans Vue

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-06-11 15:09:24
original
1788 Les gens l'ont consulté

Dans Vue, il y a souvent des composants imbriqués et des événements doivent être transmis entre ces composants imbriqués. Dans Vue, l'événement $emit est utilisé pour la communication d'événements entre les composants.

Cependant, dans certains cas, nous devons transmettre le gestionnaire d'événements d'un composant parent à un composant enfant imbriqué. Dans ce cas, l'utilisation de l'événement $emit n'est pas appropriée. À ce stade, vous pouvez utiliser les $listeners fournis par Vue pour transmettre la fonction de traitement des événements.

Alors, que sont les $listeners ? $listeners est une propriété spéciale dans l'objet instance Vue, qui contient tous les écouteurs/gestionnaires d'événements qui agissent sur le composant.

Grâce à l'attribut $listeners, nous pouvons transmettre la fonction de gestion d'événements définie dans le composant parent au composant enfant imbriqué pour l'utiliser :

  1. La fonction de gestion d'événements définie dans le composant parent :
<template>
  <div>
    <button @click="handleClick">Click me</button>
    <child @childClick="$listeners.childClick"></child>
  </div>
</template>

<script>
  export default {
    methods: {
      handleClick() {
        console.log('parent click')
      }
    }
  }
</script>
Copier après la connexion
  1. Recevoir le composant parent dans le composant enfant Fonction de gestionnaire d'événements transmise :
<template>
  <div>
    <button @click="handleClick">Click me</button>
  </div>
</template>

<script>
  export default {
    methods: {
      handleClick() {
        this.$emit('childClick')
      }
    }
  }
</script>
Copier après la connexion

De cette façon, la fonction de gestionnaire d'événements définie dans le composant parent peut être transmise au composant enfant pour utilisation.

Il convient de noter que la fonction de gestion des événements transmise dans le composant parent doit être liée à un attribut avec v-on. Dans le même temps, il convient de noter que le nom de l'événement ne peut pas être le même que le nom de l'événement défini par le. composant enfant, sinon un conflit se produira.

De plus, la propriété $listeners contient uniquement les écouteurs d'événements transmis au composant actuel et n'inclut pas les écouteurs transmis aux autres composants enfants du composant parent. Par conséquent, il est important de noter que les gestionnaires d’événements liés aux composants enfants doivent être correctement propagés aux autres composants enfants du composant parent.

En bref, utiliser $listeners dans Vue est un moyen pratique et efficace de transmettre des fonctions de gestion d'événements, ce qui nous permet de communiquer les événements de manière plus flexible entre les composants.

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