Maison interface Web Voir.js 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 组件通信 vue-router

Vue和Vue-Router: 如何在组件之间共享数据?

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, ainsi que des exemples de code spécifiques.

Variables globales :
Le moyen le plus simple dans Vue est d'utiliser des variables globales pour partager des données. Vous pouvez définir les données qui doivent être partagées en tant que propriétés sur l'instance Vue. De cette façon, les données seront visibles dans tous les composants. Voici un exemple simple :

// main.js
import Vue from 'vue'
Vue.prototype.$sharedData = { name: 'John' }

// App.vue
<template>
  <div>
    <h1>{{ $sharedData.name }}</h1>
    <ChildComponent></ChildComponent>
  </div>
</template>

// ChildComponent.vue
<template>
  <div>
    <h2>{{ $sharedData.name }}</h2>
  </div>
</template>
Copier après la connexion

En définissant $sharedData sur le prototype Vue, nous pouvons accéder aux données partagées dans n'importe quel composant via this.$sharedData . $sharedData,我们可以在任意组件中通过this.$sharedData来访问共享的数据。

Vuex:
如果你的应用需要更复杂的状态管理,Vue官方提供了一个强大的状态管理模式和库——Vuex。Vuex将所有共享的数据集中管理,通过store对象来访问数据。以下是一个使用Vuex的示例:

// store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    name: 'John'
  },
  mutations: {
    updateName(state, payload) {
      state.name = payload
    }
  },
  actions: {
    updateNameAsync({ commit }, payload) {
      setTimeout(() => {
        commit('updateName', payload)
      }, 1000)
    }
  },
  getters: {
    getName: state => {
      return state.name
    }
  }
})

export default store

// App.vue
<template>
  <div>
    <h1>{{ $store.state.name }}</h1>
    <button @click="updateName">更新名字</button>
    <ChildComponent></ChildComponent>
  </div>
</template>
<script>
import { mapMutations } from 'vuex'
export default {
  methods: {
    ...mapMutations(['updateName']),
  }
}
</script>

// ChildComponent.vue
<template>
  <div>
    <h2>{{ $store.state.name }}</h2>
  </div>
</template>
Copier après la connexion

在这个示例中,我们使用Vuex创建了一个store对象。store中的state对象存储共享的数据。mutations对象定义了更新数据的方法,actions对象定义了异步更新数据的方法。getters对象定义了获取数据的方法。在组件中,我们可以通过this.$store.state来获取共享的数据,并通过commit方法调用mutations中的方法来更新数据。

通过props传递数据:
在Vue中,组件之间可以通过props来传递数据。这是一种常见的组件通信方式,特别适用于父子组件之间。以下是一个使用props传递数据的示例:

// App.vue
<template>
  <div>
    <h1>{{ name }}</h1>
    <ChildComponent :name="name"></ChildComponent>
  </div>
</template>

// ChildComponent.vue
<template>
  <div>
    <h2>{{ name }}</h2>
  </div>
</template>
<script>
export default {
  props: ['name']
}
</script>
Copier après la connexion

在这个示例中,我们在父组件中通过:name="name"

Vuex :

Si votre application nécessite une gestion d'état plus complexe, Vue fournit officiellement un modèle et une bibliothèque de gestion d'état puissants - Vuex. Vuex gère de manière centralisée toutes les données partagées et accède aux données via les objets du magasin. Voici un exemple utilisant Vuex :
rrreee

Dans cet exemple, nous créons un objet store en utilisant Vuex. L'objet d'état dans le magasin stocke les données partagées. L'objet mutations définit des méthodes de mise à jour des données et l'objet actions définit des méthodes de mise à jour asynchrone des données. L'objet getters définit des méthodes pour obtenir des données. Dans le composant, nous pouvons obtenir les données partagées via this.$store.state et appeler les méthodes dans les mutations via la méthode commit pour mettre à jour les données. 🎜🎜Transférer des données via des accessoires : 🎜Dans Vue, les données peuvent être transmises entre les composants via des accessoires. Il s'agit d'un moyen courant de communication entre composants, en particulier entre les composants parents et enfants. Voici un exemple de transmission de données à l'aide d'accessoires : 🎜rrreee🎜 Dans cet exemple, nous transmettons l'attribut name au composant enfant via :name="name" dans le composant parent. Le composant enfant reçoit des données via l'attribut props et les affiche sur la page. 🎜🎜Résumé : 🎜Cet article présente plusieurs méthodes pour réaliser le partage de données entre les composants de Vue et Vue-Router. Grâce aux variables globales, Vuex et props, nous pouvons choisir la manière appropriée de partager les données en fonction des besoins de l'application. J'espère que ces exemples vous seront utiles. 🎜

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
4 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 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.

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

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.

See all articles