Vuex实践

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。Vuex 可以帮助我们管理共享状态。

 

State  :   唯一数据源,定义的变量都在这里面

Getter :  从State中派生出来一些状态(可以认为getter是store的计算属性),只有当它的依赖被改变时才会触发

Mutation:  更改store中状态的唯一方法,Mutation必须是同步函数

Actions : Actions类似于Mutation。不同点:Actions提交的是Mutation,而不是直接更改状态,Actions可以包含任何异步操作

目录结构:

 homeInfo.js文件内容

 1 const state = {
 2   homeInfoData: ''
 3 };
 4 const getters = {
 5   homeInfoDataMap (state) {
 6     return state.homeInfoData;
 7   }
 8 }
 9 
10 const mutations = {
11   updateHomeInfoData (state, payload) {
12     console.log('payload', payload);
13     state.homeInfoData = payload;
14   }
15 };
16 
17 const actions = {
18   updateHomeInfoData ({commit, state}, usersInfo) {
19     commit('updateHomeInfoData', usersInfo)
20   }
21 }
22 export default {
23   namespaced: true,
24   state,
25   getters,
26   mutations,
27   actions
28 }

index.js文件内容

 1 import Vue from 'vue'
 2 import Vuex from 'vuex'
 3 // import createPersistedState from 'vuex-persistedstate'; //持久化数据状态,防止刷新vuex数据丢失
 4 import homeInfo from '@/store/modules/homeInfo.js'
 5 Vue.use(Vuex);
 6 
 7 export default new Vuex.Store({
 8   modules: {
 9     homeInfo
10   }
11   // plugins: [createPersistedState()],
12 })

vueX数据的读取和赋值

1 import { mapActions } from 'vuex';
2 
3 methods: {
4     ...mapActions('homeInfo', ['updateHomeInfoData']),
5     clickBtn () {
6       this.updateHomeInfoData('update'); // 更新数据
7       console.log('homeInfoData', this.$store.state.homeInfo.homeInfoData)
8     }
9   }
原文地址:https://www.cnblogs.com/Li--gm/p/12787391.html