Two-way Computed Property Admittedly, the above is quite a bit more verbose than v-model + local state, and we lose some of the useful features from v-model as well. An alternative approach is using a two-way computed property with a setter: <input v-model="message"> // ... computed: { message: { get () { return this.$store.state.obj.message }, set (value) { this.$store.commit('updateMessage', value) } } }
Handling forms in vuex - use computed properties with a getter and a setter,
the getter - pulls the value from the store the setter - commits the value to the store