Vue听Vuex提交?

Ste*_*n-v 3 npm vue.js vue-component vuex vuejs2

有没有一种方法可以侦听Vuex提交而无需查看任何随提交更改的属性?只是简单地确定是否发生了提交?

我有一个要放入NPM包中的过滤器组件,但是我已经有一个用例,其中每当选择过滤器时,我都希望设置一个存储过滤器首选项的cookie。

显然,设置cookie等不是过滤器组件的责任,这应该是可选的。

我想一种方法是使用全局事件总线,但这意味着使用我的程序包的用户必须完全按照我的需要进行设置。每当过滤事件触发时,用户就可以执行必要的操作。

我如何在保持SRPNPM包清洁的同时仍允许用户参与某些事件?

有点广泛的问题,但我希望您能理解。

kfe*_*v91 5

您可以使用商店的subscribe方法来监听提交/更改。

API参考:https//vuex.vuejs.org/en/api.html

Vuex插件也适用于这种确切的用例。文件:https//vuex.vuejs.org/en/plugins.html

例:

let vuexPlugin = (store) => {
    let whitelist = ['abc', def', 'ghi'];
    store.subscribe((mutation, state) => {
        if (whitelist.includes(mutation.type)) {
            // your code here
        }
    });
};
Run Code Online (Sandbox Code Playgroud)