Maison interface Web js tutoriel Comprendre l'utilisation des mutations dans vuex

Comprendre l'utilisation des mutations dans vuex

May 05, 2018 pm 04:28 PM
vuex 用法

Cet article présente principalement la compréhension de l'utilisation des mutations dans Vue. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

1. des mutations ?

Le getters mentionné dans l'article précédent est destiné à l'acquisition préliminaire et au simple traitement des données dans state (le simple traitement ici ne peut pas modifier les données dans l'état), Vue La vue est pilotée par les données, ce qui signifie que les données dans state changent dynamiquement. Alors, comment les modifier ? N'oubliez pas que la seule façon de modifier les données dans Vuex est via store ! mutation

La compréhension populaire

contient un ensemble de méthodes pour modifier les données. C'est un point très important dans la conception de mutations, qui consiste à mettre toutes les méthodes logiques de traitement des données dans <.>. Séparez les données et les vues. Veuxmutations

2. Comment utiliser les mutations ?


structure de mutation : chaque

a un type d'événement de type chaîne (

) et une fonction de rappel (mutation), qui peut également être comprise comme type Ceci est un peu similaire à l’abonnement à l’édition. Enregistrez d'abord l'événement et appelez handler lorsque le type de réponse est déclenché. Lors de l'appel de {type:handler()},, vous devez utiliser la méthode handker(). typestore.commit

const store = new Vuex.Store({
  state: {
    count: 1
    },
  mutations: {
  increment (state) {   //注册时间,type:increment,handler第一个参数是state;
     // 变更状态
    state.count++}}})
    
  store.commit(&#39;increment&#39;)  //调用type,触发handler(state)
Copier après la connexion

Charge utile : la compréhension simple est de passer le paramètre

dans

 ; handler(stage)handler(stage,pryload)

 mutations: {
 increment (state, n) {
   state.count += n}}
 store.commit(&#39;increment&#39;, 10)
mutation-types:将常量放在单独的文件中,方便协作开发。
  // mutation-types.js
 export const SOME_MUTATION = &#39;SOME_MUTATION&#39;
  // store.js
import Vuex from &#39;vuex&#39;
import { SOME_MUTATION } from &#39;./mutation-types&#39;

 const store = new Vuex.Store({
  state: { ... },
  mutations: {
   // 我们可以使用 ES2015 风格的计算属性命名功能来使用一个常量作为函数名
  [SOME_MUTATION] (state) {
  // mutate state
 }
}
})
Copier après la connexion

commit : La soumission peut être effectuée dans le composant en utilisant

commit

, ou en utilisant la fonction d'assistance this.$store.commit(&#39;xxx&#39;) pour le mettre dans le composant Le mutation est mappé à l'appel mapMutations (doit injecter methods au nœud racine). store.commit store

import { mapMutations } from &#39;vuex&#39;

export default {

methods: {
 ...mapMutations([
  &#39;increment&#39; // 映射 this.increment() 为 
this.$store.commit(&#39;increment&#39;)]),
 ...mapMutations({
  add: &#39;increment&#39; // 映射 this.add() 为 
this.$store.commit(&#39;increment&#39;)
 })}}
Copier après la connexion

3. Analyse du code source

 : Initialisation

registerMutationmutation

function registerMutation (store, type, handler, path = []) {
 //4个参数,store是Store实例,type为mutation的type,handler,path为当前模块路径
  const entry = store._mutations[type] || (store._mutations[type] = 
[]) //通过type拿到对应的mutation对象数组
   entry.push(function wrappedMutationHandler (payload) {
   //将mutation包装成函数push到数组中,同时添加载荷payload参数  
   handler(getNestedState(store.state, path), payload)
   //通过getNestedState()得到当前的state,同时添加载荷payload参数
  })
 }
Copier après la connexion

 : Appelez

commitmutation

commit (type, payload, options) {
 // 3个参数,type是mutation类型,payload载荷,options配置
  if (isObject(type) && type.type) {
    // 当type为object类型,
   options = payload
   payload = type
   type = type.type
 }
 const mutation = { type, payload }
 const entry = this._mutations[type]
  // 通过type查找对应的mutation
 if (!entry) {
 //找不到报错
  console.error(`[vuex] unknown mutation type: ${type}`)
  return
 }
 this._withCommit(() => {
  entry.forEach(function commitIterator (handler) {
  // 遍历type对应的mutation对象数组,执行handle(payload)方法
  //也就是开始执行wrappedMutationHandler(handler)
   handler(payload)
  })
 })
 if (!options || !options.silent) {
  this._subscribers.forEach(sub => sub(mutation, this.state))
  //把mutation和根state作为参数传入
 }
}
Copier après la connexion

 : Abonnez-vous aux

subscribersstoremutation

subscribe (fn) {
const subs = this._subscribers
if (subs.indexOf(fn) < 0) {
 subs.push(fn)
 }
return () => {
 const i = subs.indexOf(fn)
 if (i > -1) {
  subs.splice(i, 1)
  }
 }
 }
Copier après la connexion
Recommandations associées :


vuex Combiné avec localstorage pour surveiller dynamiquement les changements de stockage


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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois 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)

Analyser l'utilisation et la classification des commentaires JSP Analyser l'utilisation et la classification des commentaires JSP Feb 01, 2024 am 08:01 AM

Classification et analyse de l'utilisation des commentaires JSP Les commentaires JSP sont divisés en deux types : commentaires sur une seule ligne : se terminant par, une seule ligne de code peut être commentée. Commentaires multilignes : commençant par /* et se terminant par */, vous pouvez commenter plusieurs lignes de code. Exemple de commentaire sur une seule ligne Exemple de commentaire sur plusieurs lignes/**Ceci est un commentaire sur plusieurs lignes*Peut commenter plusieurs lignes de code*/Utilisation des commentaires JSP Les commentaires JSP peuvent être utilisés pour commenter le code JSP afin de le rendre plus facile à lire

Comment utiliser correctement la fonction exit en langage C Comment utiliser correctement la fonction exit en langage C Feb 18, 2024 pm 03:40 PM

Comment utiliser la fonction exit en langage C nécessite des exemples de code spécifiques. En langage C, nous devons souvent terminer l'exécution du programme au début du programme, ou quitter le programme sous certaines conditions. Le langage C fournit la fonction exit() pour implémenter cette fonction. Cet article présentera l'utilisation de la fonction exit() et fournira des exemples de code correspondants. La fonction exit() est une fonction de bibliothèque standard en langage C et est incluse dans le fichier d'en-tête. Sa fonction est de terminer l'exécution du programme, et peut prendre un nombre entier

Utilisation de la fonction WPSdatedif Utilisation de la fonction WPSdatedif Feb 20, 2024 pm 10:27 PM

WPS est une suite logicielle bureautique couramment utilisée et la fonction de table WPS est largement utilisée pour le traitement des données et les calculs. Dans le tableau WPS, il existe une fonction très utile, la fonction DATEDIF, qui permet de calculer le décalage horaire entre deux dates. La fonction DATEDIF est l'abréviation du mot anglais DateDifference. Sa syntaxe est la suivante : DATEDIF(start_date,end_date,unit) où start_date représente la date de début.

Introduction aux fonctions Python : utilisation et exemples de fonction abs Introduction aux fonctions Python : utilisation et exemples de fonction abs Nov 03, 2023 pm 12:05 PM

Introduction aux fonctions Python : utilisation et exemples de la fonction abs 1. Introduction à l'utilisation de la fonction abs En Python, la fonction abs est une fonction intégrée utilisée pour calculer la valeur absolue d'une valeur donnée. Il peut accepter un argument numérique et renvoyer la valeur absolue de ce nombre. La syntaxe de base de la fonction abs est la suivante : abs(x) où x est le paramètre numérique permettant de calculer la valeur absolue, qui peut être un nombre entier ou un nombre à virgule flottante. 2. Exemples de fonction abs Ci-dessous, nous montrerons l'utilisation de la fonction abs à travers quelques exemples spécifiques : Exemple 1 : Calcul

Introduction aux fonctions Python : utilisation et exemples de la fonction isinstance Introduction aux fonctions Python : utilisation et exemples de la fonction isinstance Nov 04, 2023 pm 03:15 PM

Introduction aux fonctions Python : utilisation et exemples de la fonction isinstance Python est un langage de programmation puissant qui fournit de nombreuses fonctions intégrées pour rendre la programmation plus pratique et efficace. L'une des fonctions intégrées très utiles est la fonction isinstance(). Cet article présentera l'utilisation et des exemples de la fonction isinstance et fournira des exemples de code spécifiques. La fonction isinstance() est utilisée pour déterminer si un objet est une instance d'une classe ou d'un type spécifié. La syntaxe de cette fonction est la suivante

Explication détaillée et introduction à l'utilisation de la fonction MySQL ISNULL Explication détaillée et introduction à l'utilisation de la fonction MySQL ISNULL Mar 01, 2024 pm 05:24 PM

La fonction ISNULL() dans MySQL est une fonction utilisée pour déterminer si une expression ou une colonne spécifiée est NULL. Il renvoie une valeur booléenne, 1 si l'expression est NULL, 0 sinon. La fonction ISNULL() peut être utilisée dans l'instruction SELECT ou pour un jugement conditionnel dans la clause WHERE. 1. La syntaxe de base de la fonction ISNULL() : ISNULL(expression) où expression est l'expression permettant de déterminer si elle est NULL ou

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

Comment utiliser les raccourcis Apple Comment utiliser les raccourcis Apple Feb 18, 2024 pm 05:22 PM

Comment utiliser les commandes de raccourci Apple Avec le développement continu de la technologie, les téléphones mobiles sont devenus un élément indispensable de la vie des gens. Parmi les nombreuses marques de téléphones mobiles, les téléphones mobiles Apple ont toujours été appréciés des utilisateurs pour leurs systèmes stables et leurs fonctions puissantes. Parmi eux, la fonction de commande de raccourci Apple rend l’expérience du téléphone mobile des utilisateurs plus pratique et efficace. Apple Shortcuts est une fonctionnalité lancée par Apple pour iOS12 et les versions ultérieures. Elle aide les utilisateurs à simplifier les opérations de leur téléphone mobile en créant et en exécutant des commandes personnalisées pour obtenir un travail plus efficace et.

See all articles