废话不多说,直接上代码
import Vue from 'vue'
import Vuex from 'vuex'
const path = require('path')
Vue.use(Vuex)
function loadStoreModules() {
// require.context接收三个参数
// 1.要检索的目录
// 2.是否检索子目录
// 3.匹配文件的正则表达式,一般是文件名
// require.context返回一个require函数,函数有3个属性
// resolve: 是一个函数,他返回的是被解析模块的id ,接受一个参数request。
// keys: 也是一个函数,他返回的是一个数组,["./system.js", "./user.js"]
// id:上下文模块的id
let files = require.context('./modules', true, /\.js$/)
let modules = {}
files.keys().forEach((key) => {
const name = path.basename(key, '.js')
modules[name] = files(key).default
})
return modules
}
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
// modules: { system },
modules: loadStoreModules(),
})