一、为了应对大型应用单个store臃肿的情况,vuex提供了将store分割为单个module的功能,每个模块拥有自己的state、mutation、getter、action。
    (1)创建一个store文件夹,index.js文件,一个modules文件夹。写好每个独立的module,然后在index.js引入,创建vuex实例是,将所有module对象放入,modules属性中。

    1. const store = new Vuex.Store({
    2. modules: {
    3. a: moduleA,
    4. b: moduleB
    5. },
    6. getters:{
    7. a: getterA,
    8. b: getterB
    9. }
    10. })
    1. 2index.js中<br />引入vuevuex,创建store实例前,先调用vue.use方法,安装插件,才能使用vuex。<br />module多的情况需要一个一个地引入,此时可以用webpackrequire.context来自动引入。
    1. import Vue from 'vue'
    2. import Vuex from 'vuex'
    3. //使用vuex前,先调用vue.use安装插件
    4. Vue.use(Vuex)
    5. //再使用require.contex自动引入所有modules
    6. const fileModules = require.context('./modules', true, /\.js$/)
    7. //返回的方法有三个属性,keys方法,resolve方法,id属性
    8. fileModules.keys().reduce((modules, currentModulePath)=>{
    9. // 通过向fileModules传入对应路径,可以得到js变量。
    10. //累计操作modules,并返回
    11. },{})
    12. const store = new Vuex.store({
    13. modules
    14. })
    15. export default store
    1. main.js中引入导出的store实例,在创建vue实例时,作为参数传入配置项。ok

    二、路由配置
    路由单独放在一个文件夹中,路由可以分割为多个module,每个module导出单个路由对象。引入index.js
    index.js中存放一些基础路由对象,比如login路由,其他的权限路由要等请求后台用户权限信息后,再计算出该用户的路由,然后动态加入路由对象中。