Vue.js Vuex条件(延迟加载?)存储

Vue.js Vuex条件(延迟加载?)存储,vue.js,vuex,lazy-loading,Vue.js,Vuex,Lazy Loading,我正在Vue.js中构建一个SPA,用于管理登录用户的文档和仪表板。我面临以下问题: 我有一个vuex商店,它有几个模块,管理不同的东西 这些模块中有一(部分)是用于管理的(添加新仪表板、编辑仪表板……等等) 只有极少数最终用户可以访问管理区域,因此使用admins vuex模块 为所有用户提供管理存储和状态似乎不是很优化,因此我的问题是:是否有一种体系结构方法仅在条件下(例如,如果用户是管理员)将模块添加到vuex存储?可能是某种延迟加载,仅当用户访问管理界面时才会加载此存储 编辑:我将通

我正在Vue.js中构建一个SPA,用于管理登录用户的文档和仪表板。我面临以下问题:

  • 我有一个vuex商店,它有几个模块,管理不同的东西
  • 这些模块中有一(部分)是用于管理的(添加新仪表板、编辑仪表板……等等)
  • 只有极少数最终用户可以访问管理区域,因此使用admins vuex模块
为所有用户提供管理存储和状态似乎不是很优化,因此我的问题是:是否有一种体系结构方法仅在条件下(例如,如果用户是管理员)将模块添加到vuex存储?可能是某种延迟加载,仅当用户访问管理界面时才会加载此存储

编辑:我将通过异步API调用确定谁是管理员,因此解决方案(如果存在)必须允许动态更改存储结构。我希望避免创建2个vue实例的解决方法。
我认为这是一个常见的问题,出现在许多解决方案?(有一个用于管理的大型存储,不应该为普通用户提供)

您可以保存一个单独的变量,并根据条件添加某些模块:

从“/normalModule”导入normalModule;
从“./admin”导入管理员;
常数模={
法线模块
}
if(isAdmin)模块['admin']=admin;
导出默认的新Vuex.Store({
模块,
});

您如何确定他们是否是管理员取决于您。

是,但我将根据从同一商店访问的API确定用户是否是管理员。当商店将被创建时(当SPA打开时),我不知道用户是否是管理员。只有登录一次,我才能访问他的角色。这么说来不及将模块添加到存储中了?或者我可以在收到服务器的响应后动态添加它。我有点认为,一旦商店建立起来,我就无法以某种方式编辑它的结构。很明显,我在工作流程中遗漏了一些东西。不是100%确定,但我认为您必须创建一个新的Vue实例才能拥有这样一个单独的存储。