Введение
В центре любого Vuex-приложения находится хранилище(store).
Хранилище — это контейнер, в котором хранится состояние приложения.
Два момента отличают хранилище Vuex от простого глобального объекта:
Хранилище Vuex реактивно. Когда компоненты Vue полагаются на его состояние, то они будут реактивно и эффективно обновляться, если состояние хранилища изменяется.
Нельзя напрямую изменять состояние хранилища. Единственный способ внести изменения — явно вызвать мутацию. Это гарантирует, что любое изменение состояния оставляет след и позволяет использовать инструментарий, чтобы лучше понимать ход работы приложения.
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
}
})
// Теперь можно получить доступ к объекту состояния через store.state
// и вызвать изменение состояния с помощью метода store.commit
store.commit('increment')
console.log(store.state.count) // -> 1
Причина, по которой мы вызывается мутация(mutations), вместо изменения store.state.count
напрямую, в том, что таким образом мутацию можно явным образом отследить.
Использование состояния хранилища в компоненте предполагает просто возврат необходимой части состояния в вычисляемом(computed) свойстве, поскольку состояние хранилища реактивно.
Инициирование изменений — это просто запуск мутаций в методах компонентов.
Last updated
Was this helpful?