Maison interface Web Voir.js Comment utiliser Vuex pour la gestion des données et le partage d'état ?

Comment utiliser Vuex pour la gestion des données et le partage d'état ?

Jun 25, 2023 pm 01:44 PM
vuex 数据管理 状态共享

Vuex est une bibliothèque de gestion d'état spécialement conçue pour Vue.js. Elle peut nous aider à simplifier le transfert et la gestion des données entre les composants et à améliorer la maintenabilité et l'évolutivité des applications. Cet article présentera comment utiliser Vuex pour la gestion des données et le partage d'état, dans l'espoir d'aider tout le monde à mieux comprendre et appliquer Vuex.

1. Qu'est-ce que Vuex ?

Vuex est la bibliothèque de gestion d'état officiellement fournie par Vue.js. Elle utilise un stockage centralisé pour gérer l'état de tous les composants de l'application, et utilise les règles correspondantes pour assurer la cohérence de l'état. Dans Vuex, nous pouvons gérer nos données et notre état via le magasin. Le magasin comprend les concepts de base suivants :

  • state : données d'état, utilisées pour stocker chaque élément dans l'application. ;
  • getter : lire les attributs calculés, utilisé pour dériver certaines valeurs d'état du magasin
  • mutation : modifier l'état de manière synchrone, utilisé pour modifier l'état dans l'état ; Les données sont modifiées de manière synchrone ;
  • action : statut de modification asynchrone, utilisé pour traiter les opérations asynchrones et soumettre des mutations
  • module : modulaire, utilisé pour diviser les grands magasins en sous-modules plus petits et les gérer ; leur état et leurs opérations séparément.

2. Pourquoi avez-vous besoin de Vuex ?

Dans les applications Vue.js, à mesure que le niveau des composants continue d'augmenter, le transfert de données et d'état entre les composants deviendra de plus en plus complexe. À l'heure actuelle, nous avons besoin d'une bibliothèque de gestion d'état pour nous aider à gérer. et partagez diverses valeurs d'état dans l'application. L'utilisation de Vuex peut apporter les avantages suivants :

  1. Gestion centralisée de l'état : chaque composant peut accéder au même arbre d'état, ce qui rend la gestion de l'état plus unifiée et centralisée
  2.  ; Facile à maintenir et à déboguer : Vuex peut nous aider à mieux comprendre l'état et le flux de données de l'application, facilitant ainsi le débogage et la maintenance
  3. Améliorer la lisibilité et la lisibilité du code Maintenabilité : en utilisant Vuex, vous pouvez ; concentrer le flux de contrôle des données en un seul endroit, rendant la logique du code plus claire et plus facile à maintenir
  4. Séparer la logique métier et la gestion de l'état : en stockant l'état dans le magasin Vuex, la séparation des composants de la logique métier ; et des composants de gestion d'état peuvent être réalisés pour faciliter la maintenance et la gestion.

3. Comment utiliser Vuex ?

Avant d'utiliser Vuex, vous devez installer la bibliothèque Vuex et l'introduire dans le projet Vue :

npm install vuex --save

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

Vue.use(Vuex)
Copier après la connexion

Ensuite, nous devons créer une boutique Vuex et l'enregistrer dans le Instance Vue , comme suit :

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    },
    decrement(state) {
      state.count--
    }
  },
  actions: {
    incrementAsync(context) {
      setTimeout(() => {
        context.commit('increment')
      }, 1000)
    }
  },
  getters: {
    evenOrOdd(state) {
      return state.count % 2 === 0 ? 'even' : 'odd'
    }
  }
})

new Vue({
  el: '#app',
  store,
  computed: {
    count() {
      return this.$store.state.count
    },
    evenOrOdd() {
      return this.$store.getters.evenOrOdd
    }
  },
  methods: {
    increment() {
      this.$store.commit('increment')
    },
    decrement() {
      this.$store.commit('decrement')
    },
    incrementAsync() {
      this.$store.dispatch('incrementAsync')
    }
  }
})
Copier après la connexion

Dans le code ci-dessus, nous avons créé un magasin Vuex contenant trois concepts de base (état, mutations et actions). Parmi eux, l'état est utilisé pour stocker les données d'état, les mutations sont utilisées pour modifier l'état de manière synchrone et les actions sont utilisées pour gérer les opérations asynchrones et soumettre des mutations. Ici, nous définissons également un getter qui calcule si la valeur de comptage dans l'état est paire ou impaire.

Dans l'instance Vue, nous utilisons l'attribut calculé et l'attribut méthodes pour accéder à l'état, à la mutation et à l'action dans le magasin. count et evenOrOdd dans l'attribut calculé sont calculés sur la base des données réelles de l'état, tandis que l'incrément, la décrémentation et l'incrémentAsync dans l'attribut méthodes sont des méthodes utilisées pour modifier l'état.

4. L'utilisation de l'état et de la mutation

State est un concept central de Vuex. Il est utilisé pour stocker diverses valeurs d'état dans l'application, qui doivent généralement être stockées. être modifié par mutation. Dans Vuex, nous pouvons accéder et modifier l'état des manières suivantes :

  1. Accès à l'état : Nous pouvons accéder à l'état dans le magasin via this.$store.state, comme ci-dessus Le décompte dans le l'exemple de code est un état.
  2. Modifier directement l'état :
    La modification directe de l'état entraînera le signalement d'une erreur par l'outil d'analyse statique Vuex, car le principe de Vuex est que les modifications des données dans le magasin doivent passer par des mutations. Si nous devons modifier directement la valeur de state, nous devons utiliser Vue.set pour que la modification puisse déclencher les mises à jour de l'interface utilisateur de manière réactive. L'exemple de code est le suivant :
Vue.set(state.obj, 'newProp', 123)
Copier après la connexion
    #🎜. 🎜#Modifier l'état par mutation :
  1. mutations est une collection utilisée pour modifier l'état, qui est une opération synchrone dans Vuex. En exécutant des mutations, nous pouvons modifier arbitrairement les valeurs de l'état. Les mutations sont le seul moyen de modifier l'état dans Vuex. Les opérations asynchrones ou autres effets secondaires ne peuvent pas être effectués dans les mutations. Nous pouvons soumettre des mutations des manières suivantes :
  2. this.$store.commit('increment')   // 传入 mutation 的名称
    this.$store.commit({
      type: 'increment',
      amount: 10    // 传入额外的参数
    })
    Copier après la connexion
4 L'utilisation d'actions et de getters

Dans les applications, nous devons parfois effectuer une opération asynchrone, dans ce cas, nous pouvons utiliser des actions pour le gérer. Les actions peuvent contenir n'importe quelle opération asynchrone. Enfin, nous devons modifier les données dans l'état en soumettant une mutation. Dans Vuex, nous pouvons opérer des actions des manières suivantes :

    Définir l'action :
  1. actions: {
      incrementAsync(context) {
        setTimeout(() => {
          context.commit('increment')
        }, 1000)
      }
    }
    Copier après la connexion
    Soumettre l'action : #🎜🎜 #
  1. this.$store.dispatch('incrementAsync')
    Copier après la connexion
  2. Dans Vuex, les getters peuvent être considérés comme des propriétés calculées dans le magasin. Ce sont des valeurs d'état dérivées de l'état du magasin, qui peuvent gérer un grand nombre de répétitions et une logique complexe. . Les calculs sont mis en cache. Dans Vuex, nous pouvons utiliser les getters des manières suivantes :

Définir les getters :
  1. getters: {
      evenOrOdd(state) {
        return state.count % 2 === 0 ? 'even' : 'odd'
      }
    }
    Copier après la connexion
Accéder aux getters : #🎜 🎜 #
    this.$store.getters.evenOrOdd
    Copier après la connexion
  1. 5. Utilisation du module
  2. 在 Vuex 中,如果我们的应用程序中存在大量的 state 和 mutations、actions 和 getters,单独存放到一个 store 中会极大地增加代码的复杂性和维护难度,此时我们可以使用 module 在 Vuex 中进行模块化管理。在 using module 模式中,每个模块都拥有自己的 state、mutations、actions 和 getters,从而让代码更加清晰明了、易于维护。使用 module 的方法和常规的 Vuex store 相似,只是需要在 Vuex.Store() 中添加模块,如下所示:

    const moduleA = {
      state: { ... },
      mutations: { ... },
      actions: { ... },
      getters: { ... }
    }
    
    const store = new Vuex.Store({
      modules: {
        a: moduleA
      }
    })
    Copier après la connexion

    如上代码所示,我们创建了一个名为 moduleA 的模块,然后在 store 中通过 modules 选项将其添加到了 Vuex 的 store 中。在组件中访问模块的 state、mutations、actions 和 getters,和访问常规的 Vuex store 中的一样,只需要在前面加上模块名即可,例如:

    computed: {
      ...mapState('a', {
        count: state => state.count
      }),
      ...mapGetters('a', [
        'evenOrOdd'
      ])
    },
    methods: {
      ...mapMutations('a', [
        'increment'
      ]),
      ...mapActions('a', [
        'incrementAsync'
      ])
    }
    Copier après la connexion

    在组件中,使用 mapState、mapMutation、mapActions 和 mapGetters 进行访问和操作,可以更加方便和快捷地操作和维护模块的状态和数据。

    六、总结

    本文简要介绍了 Vue.js 的状态管理库 Vuex 的使用方法和常用场景,包括 state、mutation、action、getter 和 module 等几个核心概念的使用。Vuex 可以帮助我们有效地管理和共享应用程序中的各种状态值,提高代码的可维护性和可扩展性。在使用 Vuex 的过程中,我们还需要注意一些细节和坑点,如同步和异步操作、state 和 mutation 的使用规范等问题,需要认真掌握和注意。

    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)

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

Sauvegarde des données en PHP Sauvegarde des données en PHP May 24, 2023 am 08:01 AM

Dans le processus de développement Web, le stockage et la sauvegarde des données constituent sans aucun doute un élément très important. En cas de perte de données ou de besoins de récupération, une sauvegarde est très nécessaire. Pour PHP, un langage back-end open source, il existe également de nombreuses options de sauvegarde des données. Examinons de plus près la sauvegarde des données en PHP. 1. Sauvegarde de base de données 1.1 Outil MYSQLdump MYSQLdump est un outil de ligne de commande permettant de sauvegarder des bases de données MYSQL. Il copie l'intégralité de la base de données ou de la base de données en exécutant des instructions SQL.

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

Gestion des données avec React Query et bases de données : un guide des meilleures pratiques Gestion des données avec React Query et bases de données : un guide des meilleures pratiques Sep 27, 2023 pm 04:13 PM

Gestion des données avec ReactQuery et bases de données : un guide des meilleures pratiques Introduction : Dans le développement front-end moderne, la gestion des données est une tâche très importante. Alors que les exigences des utilisateurs en matière de hautes performances et de stabilité continuent d'augmenter, nous devons réfléchir à la manière de mieux organiser et gérer les données des applications. ReactQuery est un outil de gestion de données puissant et facile à utiliser qui offre un moyen simple et flexible de gérer la récupération, la mise à jour et la mise en cache des données. Cet article expliquera comment utiliser ReactQ

Comment utiliser PHP et FireBase pour implémenter la gestion des données cloud Comment utiliser PHP et FireBase pour implémenter la gestion des données cloud Jun 25, 2023 pm 08:48 PM

Avec le développement rapide d’Internet, la gestion des données cloud est devenue un outil essentiel pour de plus en plus d’entreprises et de particuliers. PHP et Firebase sont sans aucun doute deux outils très puissants qui peuvent nous aider à gérer les données cloud. Ensuite, cet article expliquera comment utiliser PHP et Firebase pour mettre en œuvre la gestion des données cloud. Qu'est-ce que Firebase Firebase est une plate-forme de services cloud fournie par Google, conçue pour aider les développeurs à créer rapidement des applications Web de haute qualité et haute fiabilité. F

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 !

See all articles