timg (2)

vuex动态引入store的modules

废话不多说,直接上代码

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(),
})

 

如果插件对您有用,请随意打赏。您的支持将鼓励我做的更好!

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦