Javascript vuex订阅个体突变

Javascript vuex订阅个体突变,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,有可能订阅一个个体突变吗 而不是: this.$store.subscribe((mutation, state) => { if(mutation === 'someMutation'){ doSomething() } }) 我想要这样的东西: this.$store.subscribe('someMutation', state => { doSomething() }) this.$store.subscribe(mutation =&g

有可能订阅一个个体突变吗

而不是:

this.$store.subscribe((mutation, state) => {
   if(mutation === 'someMutation'){
       doSomething()
   }
})
我想要这样的东西:

this.$store.subscribe('someMutation', state => {
    doSomething()
})
this.$store.subscribe(mutation => {
                if (mutation.type === 'setData') {
//  do something here
                }
            });

试着这样做:

this.$store.subscribe('someMutation', state => {
    doSomething()
})
this.$store.subscribe(mutation => {
                if (mutation.type === 'setData') {
//  do something here
                }
            });

将您在Vue prototype中的方法包装一下如何

因此,我们没有:

this.$store.subscribe((mutation, state) => {
   if(mutation === 'someMutation'){
       doSomething()
   }
})
你会有这样的想法:

Vue.prototype.subscribeMutation = function(someMutation, someFunction) {
       this.$store.subscribe((mutation, state) => {
       if(mutation === someMutation){
           someFunction(state)
       }
    })
}
我尚未测试代码,但您应该能够轻松获得工作结果。

来自vuex文档:

每次变异后都会调用处理程序并接收变异 描述符和变异后状态作为参数


它会对所有的突变做出反应,因此您只能使用自己的条件实现。

仅代码的答案质量很低,可能会被删除,应该至少有一句或两句话解释您正在解决的问题以及正在发生的事情。这与我已经在做的几乎相同。(即我问题中的第一个代码示例)。我一直在寻找一个解决方案,比如第二个样本可能需要检查“否”,它将针对所有突变运行。不幸的是:在组件中为存储状态中的特定数据使用mapState,然后使用手表如何?正如@MikeHarrison在文档中提到的,也可以在vuex代码中看到(第103行)。vuex只需调用子数组中的任何函数,而无需检查变异。所以vuex实际上不支持它。当然,您可以在secenes后面构建自己的模块/函数来处理它。并使用它。