Vue听Vuex提交?

时间:2017-07-16 18:34:19

标签: npm vue.js vuejs2 vue-component vuex

有没有办法在不查看通过提交更改的任何属性的情况下侦听Vuex提交?只是简单地找出是否发生了提交?

我有一个我想要放入NPM包的Filter组件,但是我已经有了一个用例,我希望在选择过滤器时设置一个存储过滤器首选项的cookie。

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

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

如何保留此SRP并作为NPM包清理,同时仍然允许用户挂钩某些事件?

有点广泛的问题,但我希望你能得到主旨。

1 个答案:

答案 0 :(得分:4)

您可以使用商店的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
        }
    });
};