Maison interface Web Voir.js Un guide complet pour implémenter la communication des composants dans Vue2.x (props, $emit, Vuex)

Un guide complet pour implémenter la communication des composants dans Vue2.x (props, $emit, Vuex)

Jun 09, 2023 pm 04:06 PM
vuex 组件通信

Un guide complet pour implémenter la communication entre composants dans Vue2.x (props, $emit, Vuex)

Vue, en tant que framework JavaScript moderne, est très populaire lors du développement d'applications Web. L'architecture composée de composants de Vue permet aux développeurs de séparer facilement le code et les fonctionnalités, tout en permettant une communication flexible via différents composants.

Dans cet article, nous explorerons trois méthodes de communication des composants dans Vue2.x : props, $emit et Vuex, pour vous aider à mieux gérer les ressources lors de la création d'applications Vue.

Props

props est l'une des méthodes de transmission de paramètres de composant de Vue. Les valeurs peuvent être transmises aux composants enfants à l'aide d'accessoires. Dans les composants enfants, les valeurs des accessoires sont en lecture seule, ce qui signifie qu'elles ne peuvent pas être modifiées. Cela permet un flux de données unidirectionnel, ce qui facilite la maintenance et le débogage des applications Vue.

Voici un exemple :

Dans le composant parent, nous pouvons créer un accessoire appelé "parent" et lui transmettre un accessoire appelé "message".

<template>
  <div>
    <child :message="msg"></child>
  </div>
</template>

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

export default {
  name: "Parent",
  components: {
    Child
  },
  data() {
    return {
      msg: "Hello World!"
    };
  }
};
</script>
Copier après la connexion

Dans le composant enfant, nous pouvons recevoir la valeur des accessoires transmise et l'utiliser dans le modèle.

<template>
  <div>
    {{ message }}
  </div>
</template>

<script>
export default {
  name: "Child",
  props: {
    message: {
      type: String,
      required: true
    }
  }
};
</script>
Copier après la connexion

Dans cet exemple, "msg" est défini dans le composant parent et "message" est le nom des accessoires - qui doivent correspondre aux valeurs du composant parent. Les composants enfants doivent utiliser l'option "props" pour définir le type de données des accessoires et les valeurs qui doivent être transmises.

Il s'agit d'un exemple de base pour le transfert de données via des accessoires. Si vous devez transmettre plusieurs accessoires, vous pouvez les placer dans un objet et les transmettre au composant enfant.

$emit

$emit est une autre méthode de communication de composants largement utilisée dans Vue. Vous pouvez utiliser $emit pour déclencher des événements personnalisés et transmettre des données au composant parent. Contrairement aux accessoires, $emit peut réaliser un transfert de données bidirectionnel, rendant le partage de ressources entre les composants des applications Vue plus pratique.

Contrairement aux accessoires, $emit peut transmettre des données des composants enfants aux composants parents. Voici un exemple :

Dans cet exemple, nous définissons un nom d'événement personnalisé "salutation" et déclenchons l'événement lorsqu'un bouton est cliqué. Nous transmettons également l'élément sélectionné dans l'événement.

<template>
  <div>
    <button @click="sayHi()">Click me</button>
  </div>
</template>

<script>
export default {
  name: "Child",
  methods: {
    sayHi() {
      this.$emit("greeting", {
        message: "Hello World!"
      });
    }
  }
};
</script>
Copier après la connexion

Dans le composant parent, nous pouvons écouter des événements personnalisés dans le composant enfant et utiliser les données transmises lorsque l'événement se déclenche.

<template>
  <div>
    <child @greeting="handleGreeting"></child>
    <div>{{ greeting }}</div>
  </div>
</template>

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

export default {
  name: "Parent",
  components: {
    Child
  },
  data() {
    return {
      greeting: ""
    };
  },
  methods: {
    handleGreeting(data) {
      this.greeting = data.message;
    }
  }
};
</script>
Copier après la connexion

Dans cet exemple, "handleGreeting" est la méthode utilisée pour gérer l'événement. Cette méthode reçoit en paramètre un événement personnalisé déclenché par le composant enfant. Le transfert de données peut être obtenu à partir de l'événement $emit dans le composant enfant.

Vuex

Vuex est une bibliothèque de gestion d'état pour les applications Vue.js. Il permet aux composants de partager leur état, rendant ainsi la communication entre les composants plus facile et plus efficace.

Voici un exemple :

Dans cet exemple, nous partageons des données en créant une boutique Vuex nommée "store". Dans l'attribut state, nous pouvons définir les données qui doivent être partagées. Dans l'attribut mutations, nous pouvons définir des fonctions pour modifier les données dans le magasin. Dans l'attribut getter, nous pouvons définir des fonctions qui traitent les données et renvoient la valeur partagée.

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    greeting: "Hello World!"
  },
  mutations: {
    changeGreeting(state, payload) {
      state.greeting = payload.greeting;
    }
  },
  getters: {
    getGreeting(state) {
      return state.greeting;
    }
  }
});
Copier après la connexion

Vous pouvez utiliser les données et les fonctions du magasin dans n'importe quel composant Vue. Dans cet exemple, nous avons configuré deux boutons. Cliquer sur le bouton « salutation » affichera la valeur de l'attribut « salutation » dans le magasin. Le bouton "changer le message d'accueil" modifiera la valeur du "message d'accueil" dans le magasin en appelant la fonction que nous avons définie dans l'attribut mutations via la fonction commit.

<template>
  <div>
    <div>{{ greeting }}</div>
    <button @click="getGreeting">greeting</button>
    <button @click="changeGreeting">change greeting</button>
  </div>
</template>

<script>
import { mapGetters, mapMutations } from "vuex";

export default {
  name: "Child",
  computed: {
    ...mapGetters(["getGreeting"])
  },
  methods: {
    ...mapMutations(["changeGreeting"]),
    getGreeting() {
      alert(this.getGreeting);
    }
  }
};
</script>
Copier après la connexion

Dans cet exemple, "mapGetters" et "mapMutations" peuvent être utilisés pour mapper les données et les fonctions du magasin aux propriétés et méthodes calculées du composant. Dans la méthode, nous utilisons alert pour afficher la valeur de l'attribut "greeting" dans le magasin. Lorsque vous cliquez sur le bouton « Modifier le message d'accueil », la fonction changeGreeting sera appelée pour modifier l'attribut « message d'accueil » dans le magasin.

Résumé

Voici les trois méthodes ci-dessus pour implémenter la communication des composants dans Vue2.x : props, $emit et Vuex. Dans le développement réel, vous pouvez choisir la méthode de communication à utiliser en fonction de différents besoins et scénarios.

Grâce aux accessoires, une transmission de données unidirectionnelle peut être réalisée pour garantir un flux de données clair entre les composants ; $emit peut effectuer une transmission de données bidirectionnelle entre les composants, rendant le partage de ressources entre les composants dans les applications Vue plus pratique ; peuvent être enregistrés dans le magasin, rendant la communication entre les composants plus facile et plus efficace.

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 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

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)

Meilleures pratiques d'utilisation de Vuex pour gérer l'état global dans Vue2.x Meilleures pratiques d'utilisation de Vuex pour gérer l'état global dans Vue2.x Jun 09, 2023 pm 04:07 PM

Vue2.x est actuellement l'un des frameworks frontaux les plus populaires, qui fournit Vuex comme solution pour gérer l'état global. L'utilisation de Vuex peut rendre la gestion des états plus claire et plus facile à maintenir. Les meilleures pratiques de Vuex seront présentées ci-dessous pour aider les développeurs à mieux utiliser Vuex et à améliorer la qualité du code. 1. Utilisez l'état d'organisation modulaire. Vuex utilise une seule arborescence d'état pour gérer tous les états de l'application, extrayant l'état des composants, rendant la gestion des états plus claire et plus facile à comprendre. Dans les applications avec beaucoup d'états, des modules doivent être utilisés

Comment utiliser Vuex dans Vue3 Comment utiliser Vuex dans Vue3 May 14, 2023 pm 08:28 PM

Que fait Vuex ? Vue officielle : outil de gestion d'état Qu'est-ce que la gestion d'état ? L'état doit être partagé entre plusieurs composants, et il est réactif. Un seul changement change tout. Par exemple, certaines informations d'état utilisées à l'échelle mondiale : statut de connexion de l'utilisateur, nom d'utilisateur, informations de localisation géographique, articles dans le panier, etc. À l'heure actuelle, nous avons besoin d'un tel outil pour la gestion globale de l'état, et Vuex est un tel outil. Gestion de l'état d'une seule page Vue–>Actions–>La couche de vue d'état (vue) déclenche une action (action) pour changer d'état (état) et répond à la couche de vue (vue) vuex (Vue3.

Comment résoudre le problème « Erreur : [vuex] ne mute pas l'état du magasin vuex en dehors des gestionnaires de mutation lors de l'utilisation de vuex dans une application Vue ? Comment résoudre le problème « Erreur : [vuex] ne mute pas l'état du magasin vuex en dehors des gestionnaires de mutation lors de l'utilisation de vuex dans une application Vue ? Jun 24, 2023 pm 07:04 PM

Dans les applications Vue, l'utilisation de vuex est une méthode courante de gestion d'état. Cependant, lors de l'utilisation de vuex, nous pouvons parfois rencontrer un tel message d'erreur : "Erreur : [vuex]donotmutatevuexstorestateoutsidemutationhandlers." Que signifie ce message d'erreur ? Pourquoi ce message d'erreur apparaît-il ? Comment corriger cette erreur ? Cet article abordera ce problème en détail. Le message d'erreur contient

Communication des composants Vue : utilisation des fonctions de rappel pour la communication des composants Communication des composants Vue : utilisation des fonctions de rappel pour la communication des composants Jul 09, 2023 pm 07:42 PM

Communication des composants Vue : utilisation des fonctions de rappel pour la communication des composants Dans les applications Vue, nous devons parfois laisser différents composants communiquer entre eux afin qu'ils puissent partager des informations et collaborer les uns avec les autres. Vue propose diverses façons d'implémenter la communication entre les composants, l'une des méthodes les plus courantes consiste à utiliser des fonctions de rappel. Une fonction de rappel est un mécanisme dans lequel une fonction est passée en argument à une autre fonction et est appelée lorsqu'un événement spécifique se produit. Dans Vue, nous pouvons utiliser des fonctions de rappel pour implémenter la communication entre les composants, afin qu'un composant puisse

Comment résoudre le problème « Erreur : [vuex] type d'action inconnu : xxx » lors de l'utilisation de vuex dans une application Vue ? Comment résoudre le problème « Erreur : [vuex] type d'action inconnu : xxx » lors de l'utilisation de vuex dans une application Vue ? Jun 25, 2023 pm 12:09 PM

Dans les projets Vue.js, vuex est un outil de gestion d'état très utile. Il nous aide à partager l'état entre plusieurs composants et fournit un moyen fiable de gérer les changements d'état. Mais lorsque vous utilisez vuex, vous rencontrerez parfois l'erreur "Erreur : [vuex]unknownactiontype:xxx". Cet article expliquera la cause et la solution de cette erreur. 1. Cause de l'erreur Lors de l'utilisation de vuex, nous devons définir certaines actions et mu

En savoir plus sur les principes de mise en œuvre de vuex En savoir plus sur les principes de mise en œuvre de vuex Mar 20, 2023 pm 06:14 PM

Lorsqu'on vous pose une question lors d'un entretien sur le principe de mise en œuvre de vuex, que devez-vous répondre ? L'article suivant vous donnera une compréhension approfondie du principe d'implémentation de vuex. J'espère qu'il vous sera utile !

Vue et Vue-Router : Comment partager des données entre composants ? Vue et Vue-Router : Comment partager des données entre composants ? Dec 17, 2023 am 09:17 AM

Vue et Vue-Router : Comment partager des données entre composants ? Introduction : Vue est un framework JavaScript populaire pour créer des interfaces utilisateur. Vue-Router est le gestionnaire de routage officiel de Vue, utilisé pour implémenter des applications monopage. Dans les applications Vue, les composants sont les unités de base pour créer des interfaces utilisateur. Dans de nombreux cas, nous devons partager des données entre différents composants. Cet article présentera quelques méthodes pour vous aider à réaliser le partage de données dans Vue et Vue-Router, et

Comment communiquer entre les composants vue3 ? Une brève analyse des méthodes de communication Comment communiquer entre les composants vue3 ? Une brève analyse des méthodes de communication Apr 21, 2023 pm 07:53 PM

​Dans les projets que nous écrivons vue3, nous communiquerons tous avec des composants en plus d'utiliser la source de données publique pinia, quelles méthodes API plus simples pouvons-nous utiliser ? Ensuite, je vais vous présenter plusieurs façons de communiquer entre les composants parent-enfant et les composants enfant-parent.

See all articles