Maison interface Web Voir.js Comparaison des schémas de livraison à plusieurs niveaux dans la communication des composants Vue

Comparaison des schémas de livraison à plusieurs niveaux dans la communication des composants Vue

Jul 18, 2023 pm 03:21 PM
emit provide/inject prop

Comparaison des solutions de livraison multi-niveaux dans la communication des composants Vue

Vue est un framework frontal très populaire. Il fournit une méthode de développement basée sur les composants et réalise le développement d'applications complexes grâce à l'imbrication et à la communication de composants. Dans le développement réel, la communication entre les composants est souvent un problème important. Lorsqu'il existe des relations à plusieurs niveaux entre les composants, la manière de transférer efficacement les données devient une question à laquelle les développeurs doivent réfléchir. Cet article présentera plusieurs schémas de communication de composants multi-niveaux courants et les comparera.

  1. Utilisez les accessoires et $emit

Vue fournit deux méthodes, props et $emit, pour implémenter le transfert de données entre les composants parent et enfant. Les accessoires sont utilisés par les composants parents pour transmettre des données aux composants enfants, et les composants enfants obtiennent des données via des accessoires. $emit est utilisé par les composants enfants pour transmettre des données aux composants parents. Le composant parent obtient des données en écoutant l'événement $emit sur les composants enfants.

L'exemple de code est le suivant :

Composant parent :

<template>
  <child-component :message="message" @update-message="updateMessage"></child-component>
</template>

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

export default {
  data() {
    return {
      message: ''
    }
  },
  components: {
    ChildComponent
  },
  methods: {
    updateMessage(newMessage) {
      this.message = newMessage
    }
  }
}
</script>
Copier après la connexion

Composant enfant :

<template>
  <button @click="sendMessage">发送消息</button>
</template>

<script>
export default {
  props: {
    message: {
      type: String,
      default: ''
    }
  },
  methods: {
    sendMessage() {
      this.$emit('update-message', 'Hello, Vue!')
    }
  }
}
</script>
Copier après la connexion

Cette solution convient à la communication entre les composants parent et enfant, mais lorsqu'il existe des relations à plusieurs niveaux entre les composants, elle doit être suite dans les composants intermédiaires En passant props et $emit, le code deviendra complexe et difficile à maintenir.

  1. Utilisation d'Event Bus

Event Bus est un bus d'événements global qui implémente la communication entre les composants en créant une instance Vue globale. Le composant écoute les événements via $on et déclenche des événements via $emit.

L'exemple de code est le suivant :

EventBus.js :

import Vue from 'vue'
export default new Vue()
Copier après la connexion

Composant parent :

<template>
  <child-component></child-component>
</template>

<script>
import ChildComponent from './ChildComponent.vue'
import EventBus from './EventBus.js'

export default {
  components: {
    ChildComponent
  },
  mounted() {
    EventBus.$on('update-message', (newMessage) => {
      this.message = newMessage
    })
  }
}
</script>
Copier après la connexion

Composant enfant :

<template>
  <button @click="sendMessage">发送消息</button>
</template>

<script>
import EventBus from './EventBus.js'

export default {
  methods: {
    sendMessage() {
      EventBus.$emit('update-message', 'Hello, Vue!')
    }
  }
}
</script>
Copier après la connexion

En utilisant Event Bus, la communication entre tous les composants peut être réalisée, mais comme il s'agit d'un bus d'événements global , des conflits de noms sont susceptibles de se produire et des circonstances chaotiques de l'événement. Et comme les composants communiquent directement via des événements, cela est peu intuitif et difficile à suivre.

  1. Utilisation de Vuex

Vuex est la bibliothèque officielle de gestion d'état de Vue, utilisée pour implémenter l'état partagé entre les composants. Dans Vuex, les données sont stockées dans un magasin centralisé et les composants modifient les données en appelant des méthodes de magasin.

L'exemple de code est le suivant :

store.js :

import Vuex from 'vuex'
import Vue from 'vue'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    message: ''
  },
  mutations: {
    updateMessage(state, newMessage) {
      state.message = newMessage
    }
  }
})
Copier après la connexion

Composant parent :

<template>
  <child-component></child-component>
</template>

<script>
import ChildComponent from './ChildComponent.vue'
import store from './store.js'

export default {
  components: {
    ChildComponent
  },
  computed: {
    message() {
      return this.$store.state.message
    }
  }
}
</script>
Copier après la connexion

Composant enfant :

<template>
  <button @click="sendMessage">发送消息</button>
</template>

<script>
import store from './store.js'

export default {
  methods: {
    sendMessage() {
      this.$store.commit('updateMessage', 'Hello, Vue!')
    }
  }
}
</script>
Copier après la connexion

L'utilisation de Vuex peut très bien résoudre le problème de communication entre les composants, en particulier pour les composants à plusieurs niveaux. relations. Cependant, comme les données doivent être transférées via le magasin, celui-ci doit être introduit dans le composant et les données modifiées via la méthode de validation, ce qui augmente relativement la complexité du code.

Pour résumer, les solutions de livraison multi-niveaux dans la communication des composants Vue incluent props et $emit, Event Bus et Vuex. En fonction de la situation réelle, le choix d'une solution appropriée peut mieux améliorer l'efficacité du développement et la maintenabilité du code.

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 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)

Comment résoudre l'erreur « [Vue warn] : accessoire requis manquant » Comment résoudre l'erreur « [Vue warn] : accessoire requis manquant » Aug 26, 2023 pm 06:57 PM

Comment résoudre l'erreur « [Vuewarn]:Missingrequiredprop » Lors du développement d'applications Vue, vous rencontrez parfois un message d'erreur courant : « [Vuewarn]:Missingrequiredprop ». Cette erreur fait généralement référence au manque de valeurs de propriété requises dans le composant, ce qui entraîne un échec de rendu correct du composant. La solution à ce problème est simple. Nous pouvons éviter et traiter cette erreur grâce à certaines compétences et réglementations. Voici quelques solutions

Comment utiliser les accessoires et émettre dans Vue3 Comment utiliser les accessoires et émettre dans Vue3 May 26, 2023 pm 06:13 PM

Fonction : le composant parent transmet les données au composant enfant via des accessoires ; Objectif : lorsqu'un type de composant doit être utilisé plusieurs fois, chaque appel n'est différent qu'à des endroits spécifiques, tout comme un formulaire de profil personnel, qui doit être rempli. à chaque fois. Les informations sont différentes pour chaque personne, mais la structure est la même. Utilisation 1 (acceptation simple sans préciser le type) : Introduisez le sous-composant dans le composant parent, passez les paramètres via l'attribut label du sous-composant et définissez une option props dans le sous-composant pour la réception et l'utilisation. ajoutez des accessoires dans le sous-composant. D'autres endroits sont définis à l'avance ci-dessus. Vous pouvez voir que l'âge transmis est un type de chaîne. Si vous souhaitez que la valeur transmise soit automatiquement augmentée de 1, vous ne pouvez pas ajouter 1 lors de l'utilisation du sous-composant. Comme le montre la figure ci-dessous, cela deviendra une chaîne.

Comment résoudre l'erreur « [Vue warn] : accessoire invalide : valeur invalide » Comment résoudre l'erreur « [Vue warn] : accessoire invalide : valeur invalide » Aug 25, 2023 pm 02:51 PM

Méthodes pour résoudre l'erreur « [Vuewarn]:Invalidprop:invalidvalue » Lors du développement d'applications à l'aide de Vue.js, nous rencontrons souvent des erreurs et des avertissements. L'une des erreurs courantes est "[Vuewarn]:Invalidprop:invalidvalue". Cette erreur se produit généralement lorsque nous essayons de transmettre une valeur non valide à une propriété d'un composant Vue. Dans cet article, nous examinerons la cause première de cette erreur

Comment résoudre l'erreur « [Vue warn] : accessoire non valide : validateur personnalisé » Comment résoudre l'erreur « [Vue warn] : accessoire non valide : validateur personnalisé » Aug 20, 2023 pm 10:53 PM

Méthodes pour résoudre l'erreur « [Vuewarn]:Invalidprop:customvalidator » Pendant le processus de développement de l'utilisation de Vue, nous rencontrons souvent des messages d'avertissement et d'erreur. L'un des messages d'erreur courants est « [Vuewarn]:Invalidprop:customvalidator ». La raison pour laquelle ce message d'erreur apparaît est que lorsque nous utilisons la fonction de validation personnalisée, nous ne parvenons pas à valider correctement le composant qui lui est transmis.

Comment résoudre l'erreur « [Vue warn] : accessoire non valide : vérification de type » Comment résoudre l'erreur « [Vue warn] : accessoire non valide : vérification de type » Aug 26, 2023 pm 10:40 PM

Comment réparer l'erreur « [Vuewarn]:Invalidprop:typecheck » Vue.js est un framework JavaScript populaire pour la création d'interfaces utilisateur. Lors du développement d'applications à l'aide de Vue.js, nous rencontrons parfois des messages d'erreur, dont "[Vuewarn]:Invalidprop:typecheck". Cette erreur est généralement causée par une utilisation incorrecte des attributs dans le composant

Comment gérer l'erreur « [Vue warn] : Éviter de muter directement un accessoire » Comment gérer l'erreur « [Vue warn] : Éviter de muter directement un accessoire » Aug 17, 2023 am 11:12 AM

Comment gérer l'erreur « [Vuewarn]:Avoidmutatingapropdirectly » Lors du développement d'applications Web à l'aide de Vue.js, nous rencontrons souvent des avertissements ou des erreurs. L'un des avertissements courants est "[Vuewarn]:Avoidmutatingapropdirectly", ce qui signifie que nous modifions directement une propriété (prop) passée par le composant parent dans le composant. Dans cet article, nous

Comparaison des schémas de livraison à plusieurs niveaux dans la communication des composants Vue Comparaison des schémas de livraison à plusieurs niveaux dans la communication des composants Vue Jul 18, 2023 pm 03:21 PM

Comparaison des schémas de livraison multi-niveaux dans la communication des composants Vue Vue est un framework frontal très populaire. Il fournit une méthode de développement basée sur les composants et réalise le développement d'applications complexes grâce à l'imbrication et à la communication de composants. Dans le développement réel, la communication entre les composants est souvent un problème important. Lorsqu'il existe des relations à plusieurs niveaux entre les composants, la manière de transférer efficacement les données devient une question à laquelle les développeurs doivent réfléchir. Cet article présentera plusieurs schémas de communication de composants multi-niveaux courants et les comparera. Utiliser des accessoires et $emitVue

Comment résoudre l'erreur « [Vue warn] : accessoire non valide : mettre à jour la valeur » Comment résoudre l'erreur « [Vue warn] : accessoire non valide : mettre à jour la valeur » Aug 26, 2023 pm 08:19 PM

Méthodes pour résoudre l'erreur « [Vuewarn]:Invalidprop:updatevalue » Dans le développement de Vue, nous rencontrons souvent l'erreur « [Vuewarn]:Invalidprop:updatevalue ». Cette erreur est généralement provoquée par un composant parent transmettant une valeur non valide à un composant enfant. Bien que cette erreur soit un avertissement de Vue plutôt qu'une erreur fatale, elle doit quand même être résolue à temps pour garantir la robustesse du programme. Cet article présentera

See all articles