Vuex的module使用

// store.js

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

const moduleA = {
  namespaced: true,
  state: () => ({
    name: "moduleA",
  }),
  mutations: {
    setName(state, name) {
      state.name = name;
    }
  },
  actions: {
    commitSetName({state, commit}, name) {
      state.name = name //可以直接通过 state 进行修改(同步)
      commit('setName', name) // 也可以通过 commit 提交 mutations 来进行修改(一般用来异步操作)
    }
  }
};

const moduleB = {
  namespaced: true,
  state: () => ({
    name: "moduleB"
  }),
  mutations: {
    setName(state, name) {
      state.name = name;
    }
  }
};

const store = new Vuex.Store({
  modules: {
    moduleA,
    moduleB
  }
});

export default store;

 

 

 说明:vuex 的 module 的使用,和平常的直接使用区别不太大,只是需要用/来区分模块路径,用以指明具体的模块操作(需要为模块开启 namespaced:true)

 

posted @ 2021-06-02 09:20  yw3692582  阅读(180)  评论(0编辑  收藏  举报