Explication détaillée des instances de modules de vuex2.0
小云云
Libérer: 2018-01-18 09:29:23
original
2615 Les gens l'ont consulté
Cet article présente principalement les modules de vuex2.0. L'éditeur le trouve plutôt bien. Maintenant, je vais le partager avec vous et vous donner une référence. Suivons l'éditeur et jetons un œil. J'espère que cela pourra aider tout le monde.
Qu'est-ce qu'un module ?
Contexte : State dans Vue utilise une seule structure arborescente d'état, et tous les états doivent être placés dans state. Si le projet est plus complexe, alors state est un objet volumineux. l'objet deviendra également très volumineux et difficile à gérer.
module : Chaque module peut avoir son propre état, mutation, action, getters, ce qui rend la structure très claire et facile à gérer.
Données à l'intérieur du module : ①État interne, l'état à l'intérieur du module est local , qui sont privés du module, comme les données de liste dans l'état du module car.js, nous devons les obtenir via this.$store.state.car.list ② Les getters internes, les mutations et les actions sont toujours enregistrés dans le espace de noms global, ceci permet à plusieurs modules de répondre à la même mutation en même temps ; le résultat de this.$store.state.car.carGetter n'est pas défini, ce qui peut être obtenu via this.$store.state.carGetter.
Créez un nouveau projet pour en faire l'expérience, créez un nouveau projet vuemodule via vue –cli, n'oubliez pas d'installer vuex.
1, dans le répertoire src Créez un nouveau dossier de connexion et créez-y index.js pour stocker l'état du module de connexion. Par souci de simplicité, j'ai mis tous les états, actions, mutations et getters sous le module dans le fichier index.js.
Ajoutez-y d'abord simplement un statut, userName : « sam »
2. Créez un nouveau store.js dans le répertoire src. est le magasin racine, qui importe le module de connexion via l'attribut modules.
import Vue from "vue";
import Vuex from "Vuex";
Vue.use(Vuex);
// 引入login 模块
import login from "./login"
export default new Vuex.Store({
// 通过modules属性引入login 模块。
modules: {
login: login
}
})
Copier après la connexion
3. Introduisez store dans main.js et injectez-le dans l'instance racine de vue.
import Vue from 'vue'
import App from './App.vue'
// 引入store
import store from "./store"
new Vue({
el: '#app',
store, // 注入到根实例中。
render: h => h(App)
})
Copier après la connexion
4. Obtenez l'état sous connexion via l'attribut calculé dans app.vue Notez ici qu'en l'absence de modules, le composant transmet ce .$store. .state.Le nom de l'attribut peut être obtenu, mais une fois qu'il y a des modules, l'état est limité à l'espace de noms de connexion (module), donc le nom du module (espace de noms) doit être ajouté devant le nom de l'attribut, et ceci.$store est passé dans le composant.state.Module name.Attribute name, voici le statut obtenu avec succès à partir de this.$store.state.login.userName
composant. Le répertoire et l'affichage du projet sont les suivants
4. Changer le nom par des actions et des mutations Cela implique une action de répartition, des mutations de validation et des mutations pour changer l'état.<🎜. >
Ajoutez d'abord l'action changeName et les mutations CHANGE_NAME dans le dossier de connexion index.js.
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