在大型项目中,不管首页是否需要那么多变量,vuex都会一次性打包进去,vuex会很大,因为是一次性加载的需求:按需异步加载vuex解决方法如下。对应的vuex拆分出来,第二步:在xxx.vue文件中添加name和isNeedVuex属性注意:为保证导入store的文件名与组件名一致,请选择合理的自己命名方法第三步:使用Vue.use和Vue.mixin两个API在main.js中添加如下代码:Vue.use(function(){Vue.mixin({beforeCreate:function(){//$optionsis一个组件选项,包括component.vue文件的`exportdefault`的属性//为了获取组件中定义的属性值`isNeedVuex`是否按需加载if(this.$options.isNeedVuex){//需要设置.vue文件的name属性,跟list文件组件的名字一样letname=this.$options.name;import("./store/modules/"+name).then((res)=>{console.log(res);//res.defaultis表示store/modules文件夹下我们对应文件的导出默认对象//registerModuleisvuex自带的一个方法,请自行搜索//第一个参数为动态注入的模块名,第二个参数为模块导出对象this.$store.registerModule(name,res.default);});}}});});修改评论中提到的问题,可以作为组件中的参考销毁后,注销对应的store,在router/index.js中添加如下代码:,是vuex的API,请自行搜索store.unregisterModule(from.name);}//next();});
