在我们使用vuex的时候,项目太大会有很多modules要引入,所以我们封装一个方法来解决这个问题
首先我们把所有页面的store子模块创建在一个文件夹内
然后在主模块中封装方法 如下:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
let modulesFiles=require.context('./modules',true,/\.js$/) //获取modules文件下的所有js文件
let modules=modulesFiles.keys().reduce((module,modulePath)=>{
const modulesName=modulePath.replace(/^\.\/(.+)\.js$/,"$1") //截取文件名
const value=modulesFiles(modulePath) //获取文件数据
module[modulesName]=value.default //把数据赋值给module
return module
},{})
export default new Vuex.Store({
state: {
},
mutations: {
},
actions: {
},
modules
})
这样就会让我们轻松很多