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

时间:2020-10-15 12:25:46

标签: vue.js vuex lazy-loading

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

  • 我有一个带有多个模块的vuex商店,用于管理不同的事物。
  • 其中一个(一些)模块用于管理目的(添加新的仪表板,编辑仪表板...等等)。
  • 只有极少数最终用户可以访问管理区域,因此可以使用admins vuex模块。

为所有用户提供管理存储和状态似乎不是非常优化,所以我的问题是:是否有一种仅在某些条件下(例如,如果用户是管理员)将模块添加到vuex存储的体系结构方法? ?也许某种延迟加载仅在用户访问管理界面时才会加载此商店?

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

1 个答案:

答案 0 :(得分:2)

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

import normalModule from './normalModule';
import admin from './admin';

const modules = {
    normalModule
}

if (isAdmin) modules['admin'] = admin;

export default new Vuex.Store({
    modules,
});

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