Vue 监听 Vuex 提交?
Vue listen for Vuex commit?
有没有办法在不观察随提交更改的任何属性的情况下监听 Vuex 提交?只是简单地查明是否发生了提交?
我有一个过滤器组件,我想将其放入 NPM 包中,但我已经有一个用例,我想设置一个 cookie,在选择过滤器时存储过滤器首选项。
显然过滤器组件不负责设置 cookie 等,这应该是可选的。
我想一种方法是使用全局事件总线,但这意味着使用我的包的用户必须完全按照我的需要设置一个。每当触发过滤器事件时,用户就可以执行必要的操作。
如何保留此 SRP
并作为 NPM 包进行清理,同时仍允许用户挂接到某些事件?
有点笼统的问题,但我希望你能明白要点。
您可以使用商店的 subscribe
方法收听 commits/mutations。
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
}
});
};
有没有办法在不观察随提交更改的任何属性的情况下监听 Vuex 提交?只是简单地查明是否发生了提交?
我有一个过滤器组件,我想将其放入 NPM 包中,但我已经有一个用例,我想设置一个 cookie,在选择过滤器时存储过滤器首选项。
显然过滤器组件不负责设置 cookie 等,这应该是可选的。
我想一种方法是使用全局事件总线,但这意味着使用我的包的用户必须完全按照我的需要设置一个。每当触发过滤器事件时,用户就可以执行必要的操作。
如何保留此 SRP
并作为 NPM 包进行清理,同时仍允许用户挂接到某些事件?
有点笼统的问题,但我希望你能明白要点。
您可以使用商店的 subscribe
方法收听 commits/mutations。
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
}
});
};