vuex

文件配置

  store文件夹下的index.js文件

  import  Vue  from  'vue'

  import  Vuex  from  'vuex'

  Vue.use(Vuex)

  export  default  new  Vuex.Store({

    state:{

      num: 1,

      age: 18

    },

    getters: {

      a(state){

        return  state =>  state.num

      },

      b(state){

        return   state  =>  state.age

      }

    },

    mutations: {

      ADD(state){

        state  +=  1

      },

      MIN(state){

        state  -=  1

      }

    },

    actions: {

      ADD(context){

        context.commit('ADD')

      },

      MIN({commit,state}){

        commit('MIN')

      }

    }

  })

组件中使用

  this.$store.state.num

  this.$store.commit('ADD')

  this.$store.dispatch('MIN')

使用辅助函数:

  import  {mapGetters, mapActions}  from  'vuex'

  computed:{

    ...mapGetters(['a', 'b'])

  },

  methods: {

    ...mapActions(['ADD', 'MIN'])

  }

vuex模块化

  在store文件夹下创建一个modules文件夹,在modules文件夹下创建模块的js文件

  user.js文件

    const  state  = {}

    const  getters = {}

    const  mutations  =  {}

    const  actions  =  {}

    export  default{

      state,

      getters,

      mutations,

      actions

    }

  index.js文件

    import  Vue  from  'vue'

    import  Vuex  from  'vuex'

    Vue.use(Vuex)

    import  user  from  './modules/user'

    import  permission  from  '/modules/permission'

    const  store  =  new  Vuex.Store({

      modules:{

        user,

        permission

      }

    })

    export  default  store

原文地址:https://www.cnblogs.com/cuishuangshuang/p/13180101.html