【发布时间】:2020-02-26 10:22:55
【问题描述】:
我正在使用 webpack、vuex 和 vue-router 构建一个 vuejs 应用程序。
我的项目结构如下所示:
[组件]
- BlockingLayer.vue
[商店]
- index.js
[restapi]
- index.js
App.vue
main.js
我在 App.vue 中使用 BlockingLayer.vue。 App.vue 有显示/隐藏 BlockingLayer 的方法。
现在我希望能够从 [restapi] index.js 触发这些方法 - 我该怎么做?
我尝试在我的 restapi 模块中导入 App.vue - 不起作用。同时在restapi中导入存储完美无缺。在 store 中导入 restapi 并在那里使用它也可以正常工作。我可以做的是在商店内而不是在 App.vue 内使用变量来显示/隐藏我猜的 BlockingLayer,但这并不是我想说的商店的真正用途......
【问题讨论】:
-
Vuex 是 Vue 的 状态管理 扩展/插件。它应该存储状态。显示/隐藏的图层 - 这是您的应用程序中的一种状态。我认为将状态存储在状态管理工具中是可以的。
-
您在 Vuex 中存储状态的方法是正确的。但是,一个问题是,当您可以在调用该 api 的 vue 组件中执行此操作时,为什么要在 restapi/index.js 中触发 vue 方法
标签: javascript vue.js vuejs2 es6-modules