Table des matières
子组件
组件B
Maison interface Web Voir.js Utilisation et scénarios courants des événements personnalisés Vue

Utilisation et scénarios courants des événements personnalisés Vue

Sep 15, 2023 pm 12:12 PM
vue 用法 自定义事件 常见场景

Utilisation et scénarios courants des événements personnalisés Vue

Utilisation et scénarios courants des événements personnalisés Vue

Vue.js est un framework JavaScript populaire pour la création d'interfaces utilisateur. Dans Vue, nous pouvons implémenter la communication entre les composants via des événements personnalisés. Les événements personnalisés sont l'une des fonctionnalités très utiles de Vue, nous permettant de transmettre des données entre différents composants et de déclencher des comportements spécifiques. Cet article présentera l'utilisation et les scénarios courants des événements personnalisés dans Vue, et fournira des exemples de code spécifiques.

1. Utilisation de base des événements personnalisés

Dans Vue, nous pouvons utiliser la méthode $emit pour déclencher des événements personnalisés. La méthode $emit reçoit deux paramètres. Le premier paramètre est le nom de l'événement à déclencher et le deuxième paramètre est les données à transmettre. Les composants qui reçoivent des événements personnalisés doivent utiliser la directive v-on pour écouter les événements et exécuter la logique associée lorsque l'événement est déclenché.

Voici un exemple simple qui montre comment déclencher un événement personnalisé dans un composant parent et recevoir et gérer l'événement dans un composant enfant :

<!-- 父组件 -->
<template>
  <div>
    <button @click="triggerEvent">触发事件</button>
    <child-component @custom-event="handleEvent"></child-component>
  </div>
</template>

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

export default {
  components: {
    ChildComponent
  },
  methods: {
    triggerEvent() {
      this.$emit('custom-event', 'Hello, world!');
    },
    handleEvent(data) {
      console.log(data); // 输出:Hello, world!
    }
  }
}
</script>

<!-- 子组件 -->
<template>
  <div>
    <h1 id="子组件">子组件</h1>
  </div>
</template>

<script>
export default {
  mounted() {
    this.$emit('custom-event', 'Hello, world!');
  }
}
</script>
Copier après la connexion

Dans l'exemple ci-dessus, lorsque vous cliquez sur le bouton "Déclencher un événement", le parent composant Un événement personnalisé est déclenché et la chaîne « Hello, world ! » est transmise en tant que données. Le sous-composant écoute l'événement personnalisé via la directive v-on et imprime les données reçues dans la méthode handleEvent.

2. Scénarios courants d'événements personnalisés

  1. Communication entre les composants parent et enfant

Les événements personnalisés sont très pratiques pour transférer des données et mettre en œuvre la communication entre les composants parent et enfant. Le composant parent peut transmettre des données au composant enfant via des événements personnalisés et écouter les événements personnalisés déclenchés par le composant enfant pour obtenir les données du composant enfant.

  1. Communication entre composants frères et sœurs

Si deux composants n'ont pas de relation parent-enfant, mais ont besoin de communiquer, vous pouvez utiliser le bus d'événements de Vue pour y parvenir. Un bus d'événements est une instance Vue vide utilisée pour partager des événements entre différents composants. Des événements personnalisés peuvent être déclenchés et reçus entre différents composants via les méthodes $emit et $vnode.$on.

Voici un exemple qui montre comment utiliser le bus d'événements pour communiquer entre des composants frères et sœurs :

<!-- 组件A -->
<template>
  <div>
    <button @click="triggerEvent">触发事件</button>
  </div>
</template>

<script>
import eventBus from './eventBus';

export default {
  methods: {
    triggerEvent() {
      eventBus.$emit('custom-event', 'Hello, world!');
    }
  }
}
</script>

<!-- 组件B -->
<template>
  <div>
    <h1 id="组件B">组件B</h1>
  </div>
</template>

<script>
import eventBus from './eventBus';

export default {
  mounted() {
    eventBus.$on('custom-event', data => {
      console.log(data); // 输出:Hello, world!
    })
  }
}
</script>

<!-- eventBus.js -->
import Vue from 'vue';

const eventBus = new Vue();

export default eventBus;
Copier après la connexion

Dans l'exemple ci-dessus, le composant A a déclenché un événement personnalisé via le bus d'événements, en transmettant des données. Le composant B écoute les événements personnalisés via le bus d'événements et obtient des données dans la fonction de rappel.

  1. Communication entre les composants de plusieurs niveaux

Vue fournit une API de fourniture/injection pour établir la communication entre les composants de plusieurs niveaux. En utilisant provide dans le composant parent pour fournir des données et en utilisant inject dans le composant descendant pour injecter des données, la communication entre les composants à n'importe quel niveau est obtenue.

Voici un exemple qui montre comment utiliser provide et inject pour établir une communication entre les composants de plusieurs niveaux :

<!-- 父组件 -->
<template>
  <div>
    <p>父组件提供的数据:{{ data }}</p>
    <grand-child-component></grand-child-component>
  </div>
</template>

<script>
export default {
  provide() {
    return {
      data: 'Hello, world!'
    }
  }
}
</script>

<!-- 子组件 -->
<template>
  <div>
    <p>子组件注入的数据:{{ injectedData }}</p>
    <child-component></child-component>
  </div>
</template>

<script>
export default {
  inject: ['data'],
  computed: {
    injectedData() {
      return this.data;
    }
  }
}
</script>

<!-- 孙子组件 -->
<template>
  <div>
    <p>孙子组件注入的数据:{{ injectedData }}</p>
  </div>
</template>

<script>
export default {
  inject: ['data'],
  computed: {
    injectedData() {
      return this.data;
    }
  }
}
</script>
Copier après la connexion

Dans l'exemple ci-dessus, le composant parent fournit les données "Hello, world through provide, le composant enfant et !" Les données sont injectées dans les composants petits-enfants respectivement via inject et utilisées dans le modèle.

Résumé

Les événements personnalisés sont une fonctionnalité très utile dans Vue, qui peut facilement implémenter la communication entre les composants. Dans Vue, nous pouvons utiliser la méthode $emit pour déclencher des événements personnalisés et écouter les événements via la directive v-on. Les événements personnalisés conviennent à la communication entre les composants parent-enfant, les composants frères et les composants inter-niveaux. J'espère que le grand nombre d'exemples de codes fournis dans cet article pourront vous aider à mieux comprendre l'utilisation et les scénarios courants des événements personnalisés dans 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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Vue réalise l'effet de défilement de chapiteau / texte Vue réalise l'effet de défilement de chapiteau / texte Apr 07, 2025 pm 10:51 PM

Implémentez les effets de défilement marquee / texte dans VUE, en utilisant des animations CSS ou des bibliothèques tierces. Cet article présente comment utiliser l'animation CSS: créer du texte de défilement et envelopper du texte avec & lt; div & gt;. Définissez les animations CSS et défini: caché, largeur et animation. Définissez les images clés, Set Transforment: Translatex () au début et à la fin de l'animation. Ajustez les propriétés d'animation telles que la durée, la vitesse de défilement et la direction.

Que signifie la charge paresseuse? Que signifie la charge paresseuse? Apr 07, 2025 pm 11:54 PM

Dans vue.js, le chargement paresseux permet de charger dynamiquement les composants ou les ressources, en réduisant le temps de chargement des pages initiales et en améliorant les performances. La méthode de mise en œuvre spécifique comprend l'utilisation de & lt; keep-alive & gt; et & lt; composant est & gt; composants. Il convient de noter que le chargement paresseux peut provoquer des problèmes de FOUC (écran d'éclat) et ne doit être utilisé que pour les composants qui nécessitent un chargement paresseux pour éviter les frais généraux de performances inutiles.

Comment interroger la version de Vue Comment interroger la version de Vue Apr 07, 2025 pm 11:24 PM

Vous pouvez interroger la version Vue en utilisant Vue Devtools pour afficher l'onglet Vue dans la console du navigateur. Utilisez NPM pour exécuter la commande "NPM List -g Vue". Recherchez l'élément VUE dans l'objet "dépendances" du fichier package.json. Pour les projets Vue CLI, exécutez la commande "Vue --version". Vérifiez les informations de la version dans le & lt; script & gt; Tag dans le fichier html qui fait référence au fichier VUE.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

See all articles