我找不到从外部.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);
因为我的商店不是从单个文件导入,而是从三个不同文件之一导入。
是否可以做,还是需要将所有商店合并为一个对象?
答案 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));