VUEX用法

一、引入,并区分模块
import Vuex from 'vuex'
import Vue from 'vue'
import user from './modules/user'

Vue.use(Vuex)
const store = new Vuex.Store({
  modules: {
    user
  },
  getters: {
    user: state => state.user,
  }
})
export default store
二、user文件实例用法
const user = {
  state: {
    nickName: ''
  },
  mutations: {
    SET_NICK_NAME: (state, nickName) => {
      state.nickName = nickName
    },
  },
  actions: {
      // 切换部门
    async ChangeDept({ commit, state }, deptId) {
      return new Promise((resolve, reject) => {
        changeDept(process.env.VUE_APP_CLIENT_KEY + ' ' + state.token, deptId).then(({ code, data, msg }) => {
          resolve({ code, data, msg })
        }).catch(error => {
          reject(error)
        })
      })
    },
  }
}
export default user
三、普通调用赋值
this.$store.commit('user/SET_NICK_NAME', user.nickName)
四、异步调用actions函数
this.$store.dispatch('ChangeDept', deptId).then(({ code, msg }) => {
       if(code != 200) return this.$message.error(msg)
})
五、取值
import { mapState, mapActions, mapGetters } from "vuex";

this.$store.state.user.user //普通取值

computed: {
  ...mapGetters(['user']),
  ...mapState({
    userId: (state) => state.user.user.userName
  })
},
methods: {
  ...mapActions("user", ["ChangeDept"]),
},
async created() {
    this.ChangeDept();
},
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Vuex简介 Vuex是专门用来管理vue.js应用程序中状态的一个插件。他的作用是将应用中的所有状态都放在...
    黄黄黄大帅阅读 3,106评论 0 0
  • PS: Vuex 对于很多初入门Vue的来说,入门困难,感觉非常绕。 Vuex 是一个专为 Vue.js 应用程...
    Piszz阅读 4,605评论 0 1
  • Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 个人理解:就是在项目中可以对在state中定义的变...
    LQing_阅读 2,425评论 0 1
  • Vuex简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 State: 驱动应用的数据源; V...
    SunnySky_阅读 3,382评论 0 1
  • 近几年基本都在写vue项目,vuex在每个项目中基本都会用到,每次都是按照语法匆匆用,先实现需求,完成工作,用的也...
    程婷_5284阅读 4,123评论 0 2