vuex: State mutation tracking with example

Deepak Ranolia
2 min readApr 4, 2023

--

In Vuex, state mutation tracking is a feature that allows you to track changes made to the state in a Vue.js application. Here’s an example of how to use state mutation tracking in Vuex with Vue 3:

import { createApp } from 'vue'
import { createStore } from 'vuex'
const store = createStore({
state() {
return {
count: 0
}
},
mutations: {
increment(state) {
state.count++
},
decrement(state) {
state.count--
}
},
actions: {
increment(context) {
context.commit('increment')
},
decrement(context) {
context.commit('decrement')
}
},
getters: {
getCount(state) {
return state.count
}
},
strict: true
})
const app = createApp({
computed: {
count() {
return this.$store.getters.getCount
}
},
methods: {
increment() {
this.$store.dispatch('increment')
},
decrement() {
this.$store.dispatch('decrement')
}
}
})
app.use(store)app.mount('#app')

In this example, we’ve defined a Vuex store with a count state property and mutations to increment and decrement the count. We've also defined actions to call the mutations and getters to retrieve the count state property.

We’ve also enabled strict mode in the store by setting the strict option to true. This means that Vuex will throw an error if we try to mutate the state outside of a mutation handler. This helps to prevent accidental state mutations and makes it easier to track changes to the state.

By using state mutation tracking in Vuex, we can ensure that all state changes are made predictably and in a controlled manner. This can help to make our Vue.js applications more reliable, easier to maintain, and less prone to bugs

BONUS BELOW

If you are new to the web development and hustling for bread and butter due to low income, Please check out the below link
Live Chat Jobs — You have to try this one at home

--

--

Deepak Ranolia
Deepak Ranolia

Written by Deepak Ranolia

Strong technical skills, such as Coding, Software Engineering, Product Management & Finance. Talk about finance, technology & life https://rb.gy/9tod91

No responses yet