How Vuex state management should be used

php中世界最好的语言
Release: 2018-04-16 10:28:38
Original
1484 people have browsed it

This time I will show you how to use Vuex state management, what are theprecautionswhen using Vuex state management, the following is a practical case, let's take a look.

Vuex is a tool designed for Vue.js State management patterns for application development. It uses centralized storage to manage the state of all components of the application, and uses corresponding rules to ensure that the state changes in a predictable way. Vuex is also integrated into Vue's officialDebuggingtool devtools extension provides advanced debugging functions such as zero-configuration time-travel debugging, status snapshot import and export, etc.

The above is the introduction of vuex in the official document of vuex. The official document explains the usage of vuex in detail. I won’t go into details about the usage of vuex here. The purpose of writing this blog is just to help some students understand and get started with vuex faster.

1. Install

$ npm install vuex --save
Copy after login

2. Reference store.js

import Vue from 'vue' import App from './App' import router from './router' import store from './vuex/store' //引用store.js Vue.config.productionTip = false //阻止在启动时生成生产提示 //vue实例 new Vue({ el: '#app', router, store, //把store挂在到vue的实例下面 template: '', components: { App } })
Copy after login

in main.js main entrance js 3. Reference Vuex

import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) //注册Vuex // 定义常量 如果访问他的话,就叫访问状态对象 const state = { count: 1 } // mutations用来改变store状态, 如果访问他的话,就叫访问触发状态 const mutations = { //这里面的方法是用 this.$store.commit('jia') 来触发 jia(state){ state.count ++ }, jian(state){ state.count -- }, } //暴露到外面,让其他地方的引用 export default new Vuex.Store({ state, mutations })
Copy after login

in store.js 4. Use

in vue component Use the $store.commit('jia') area to trigger the addition and subtraction methods below mutations

  
Copy after login

5. View the demo

How Vuex state management should be used

6. state access state object

Use computed calculation

 
Copy after login

7. Mutations trigger state (synchronization state)

 
Copy after login

8. Getters calculateproperty

Getter cannot use arrow functions, which will change the pointing of this

Add getters

// 计算 const getters = { count(state){ return state.count + 66 } } export default new Vuex.Store({ state, mutations, getters }) //count的参数就是上面定义的state对象 //getters中定义的方法名称和组件中使用的时候一定是一致的,定义的是count方法,使用的时候也用count,保持一致。 组件中使用 
Copy after login

in store.js 9.actions (asynchronous state)

Add actions

import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) // 定义常量 const state = { count: 1 } // mutations用来改变store状态 同步状态 const mutations = { jia(state){ state.count ++ }, jian(state){ state.count -- }, } // 计算属性 const getters = { count(state){ return state.count + 66 } } // 异步状态 const actions = { jiaplus(context){ context.commit('jia') //调用mutations下面的方法 setTimeout(()=>{ context.commit('jian') },2000) alert('我先被执行了,然后两秒后调用jian的方法') }, jianplus(context){ context.commit('jian') } } export default new Vuex.Store({ state, mutations, getters, actions })
Copy after login

in store.js Use

  
Copy after login

in components 10. modules module

Suitable for very large projects with many statuses, easy to manage

Modify store.js

import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const state = { count: 1 } const mutations = { jia(state){ state.count ++ }, jian(state){ state.count -- }, } const getters = { count(state){ return state.count + 66 } } const actions = { jiaplus(context){ context.commit('jia') //调用mutations下面的方法 setTimeout(()=>{ context.commit('jian') },2000) alert('我先被执行了,然后两秒后调用jian的方法') }, jianplus(context){ context.commit('jian') } } //module使用模块组的方式 moduleA const moduleA = { state, mutations, getters, actions } // 模块B moduleB const moduleB = { state: { count:108 } } export default new Vuex.Store({ modules: { a: moduleA, b: moduleB, } })
Copy after login

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:



The above is the detailed content of How Vuex state management should be used. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!