Есть много способов сделать это, вы должны поэкспериментировать и найти тот, который соответствует вашему подходу самостоятельно. Это то, что я предлагаю
{ // the store
state: {
something: ''
},
mutations: {
setSomething (state, something) {
// example of modifying before storing
state.something = String(something)
}
},
actions: {
fetchSomething (store) {
return fetch('/api/something')
.then(data => {
store.commit('setSomething', data.something)
return store.state.something
})
})
}
}
}
{ // your component
created () {
this.$store
.dispatch('fetchSomething')
.then(something => {
this.something = something
})
.catch(error => {
// you got an error!
})
}
}
Для лучшего объяснения: https://vuex.vuejs.org/en/actions.html
Теперь, если вы обрабатываете ошибку в самом действии, вы можете просто вызвать действие и использовать вычисляемое свойство, ссылающееся на значение в хранилище
{
computed: {
something () { // gets updated automatically
return this.$store.state.something
}
},
created () {
this.$store.dispatch('loadSomething')
}
}