vuex使用和规范

关于vuex使用和规范
vuex示例

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

Vue.use(Vuex);
let store = new Vuex.Store({
  // 1. state
  state:{
    city:"城市名",
    reserveInfo:{}  //预约参数列表
  },

  // 2. getters
  getters:{
    // 参数列表state指的是state数据
    getCityFn(state){
      return state.city;
    },
    getReserve(state){
      return state.reserveInfo;
    }
  },
  // 3. actions
  // 通常跟api接口打交道
  actions:{
    // 设置城市信息
    // 参数列表:{commit, state}
    // state指的是state数据
    // commit调用mutations的方法
    // name就是调用此方法时要传的参数
    setCityName({commit,state}, name){
      // 跟后台打交道
      // 调用mutaions里面的方法
      commit("setCity", name);
    },
    setReserveInfo({commit,state},obj){
      commit('setReserve',obj);
    }
  },
  // 4. mutations
  mutations:{
    // state指的是state的数据
    // name传递过来的数据
    setCity(state, name){
      state.city = name;//将传参设置给state的city
    },
    setReserve(state, obj){
      // state.reserveInfo = Object.assign(state.reserveInfo,obj);
      state.reserveInfo = {
        ...state.reserveInfo,
        ...obj
      }
    }
  }
});

export default store;

在vue页面中调用和使用分两种情况,第一种直接使用,使用computed获取,示例

computed:{
      reserveInfo(){
        return this.$store.getters.getReserve;
      }
    },

vue页面调用

预约业务 {{reserveInfo.typeName}}
预约大厅 {{reserveInfo.centerName}}
详细地址 {{reserveInfo.address}}

第二种,修改vuex仓库参数的值

this.$store.dispatch('setReserveInfo',this.typeList);

你可能感兴趣的:(vuex使用和规范)