一、结构
二、index.js
import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); // https://webpack.js.org/guides/dependency-management/#requirecontext const modulesFiles = require.context("./modules", true, /\.js$/); // you do not need `import app from './modules/app'` // it will auto require all vuex module from modules file const modules = modulesFiles.keys().reduce((modules, modulePath) => { // set './app.js' => 'app' const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1"); const value = modulesFiles(modulePath); modules[moduleName] = value.default; return modules; }, {}); const store = new Vuex.Store({ modules }); export default store;
三、modules 下新建模块js 文件 例如:app.js
export default { state: { appInfo:null //... }, mutations: { setAppInfo(state, value) { state.appInfo= value; } }, actions: { setAppInfoAction({ commit }, value) { commit("setAppInfo", value); }, }, getters:{} };
四、main.js 中引入
import store from "./store"; new Vue({ router, store, render: h => h(App) }).$mount("#app");