vuex подписываются на отдельные мутации

Можно ли подписаться на индивидуальную мутацию?

Вместо:

this.$store.subscribe((mutation, state) => {
   if(mutation === 'someMutation'){
       doSomething()
   }
})

Мне хотелось бы что-то вроде этого:

this.$store.subscribe('someMutation', state => {
    doSomething()
})

Ответы

Ответ 1

Как насчет упаковки метода, который у вас есть где-то в прототипе Vue?

Поэтому вместо того, чтобы:

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)
       }
    })
}

Я не тестировал код, но вы должны быть в состоянии легко получить рабочий результат.

Ответ 2

Попробуйте что-то вроде этого:

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