【发布时间】:2019-04-15 14:07:42
【问题描述】:
我有一个包含多个模块的 vuex 存储,我希望能够在模块内收听“全局”dispatch 或 commit 调用(也称为操作和突变)。例如,在auth 模块中有登录和注销等操作。每当调度这些操作时,我希望另一个模块 ui 也执行一些操作,例如根据登录用户设置语言。
我知道我可以从 auth 模块的登录和注销操作中分派 ui 操作。但我宁愿让它反过来,这样ui 正在监听auth 中发送的事件(动作和/或突变)。这样我就可以轻松创建副作用,而无需更改“原始”vuex 模块。
也许我需要使用手表,但有些动作不会改变状态,所以我不能总是使用它们。创建插件也是一种选择,但我不想每次想创建这样的副作用时都创建一个额外的插件。
所以我的问题;在一个 vuex 模块中,我如何监听从其他模块发送的动作/突变?
【问题讨论】:
-
也许你可以在模块内订阅
-
谢谢还没有找到,但它建议使用插件。我想知道是否有另一种方式来收听(或订阅)模块中的操作
-
我想一个插件会为你解决它
-
将其用作插件是可选的。 Subscribe API 可以在商店实例创建后注册。无法从模块内监听,因为模块被编译到单个存储实例中。
标签: javascript vue.js vuex vuex-modules