我正在Vue.js中构建SPA,以管理登录用户的文档和仪表板。我面临以下问题:
为所有用户提供管理存储和状态似乎不是非常优化,所以我的问题是:是否有一种仅在某些条件下(例如,如果用户是管理员)将模块添加到vuex存储的体系结构方法? ?也许某种延迟加载仅在用户访问管理界面时才会加载此商店?
编辑:我将通过异步API调用来确定谁是管理员,因此解决方案(如果存在)必须允许动态更改商店结构。我想避免创建2个vue实例的变通方法。 我认为这是许多解决方案中出现的常见问题? (拥有一个大型商店用于管理目的,普通用户不应该看到)
答案 0 :(得分:2)
您可以保存一个单独的变量并根据条件添加某些模块:
import normalModule from './normalModule';
import admin from './admin';
const modules = {
normalModule
}
if (isAdmin) modules['admin'] = admin;
export default new Vuex.Store({
modules,
});
如何确定他们是否是管理员取决于您。