


Un guide complet pour implémenter la communication des composants dans Vue2.x (props, $emit, 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>
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>
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>
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>
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; } } });
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>
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds



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

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 ?](https://img.php.cn/upload/article/000/000/164/168760467048976.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
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 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 ?](https://img.php.cn/upload/article/000/887/227/168766615217161.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
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

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 ? 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

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.
