从外部js文件访问当前加载的商店

时间:2020-04-29 12:29:51

标签: javascript vue.js vuex

我找不到从外部.js文件访问当前加载的商店的方法。

我的应用程序有3个webpack入口点,因此它将创建3个共享一些通用代码的包。每个捆绑软件都有不同的init.js文件,我在其中提供了不同的存储。

通常,我会简单地这样做:

import Store from "@/store";
console.log(Store.state.app.someValue);

但是我宁愿做类似的事情:

import Vue from "vue";
console.log(Vue.$store.state.app.someValue);

因为我的商店不是从单个文件导入,而是从三个不同文件之一导入。

是否可以做,还是需要将所有商店合并为一个对象?

1 个答案:

答案 0 :(得分:0)

有效的解决方案是:

创建一个存储文件,并在没有任何模块的情况下将其导出:

export default Vuex.Store({
  strict: "debug",
  plugins: [],
  // no modules
});

然后将其导入单独的条目文件中,并用(伪代码)填充模块:

import Store from "./path/to/my/store";
import modules from "./path/to/my/modules/for/this/entry/file";

modules.forEach((name, module) => Store.registerModule(name, module));