|
@@ -16,8 +16,11 @@
|
|
|
|
|
|
После [установки](../installation.md) Vuex, давайте создадим хранилище. Это довольно просто — необходимо указать начальный объект состояния и некоторые мутации:
|
|
|
|
|
|
-``` js
|
|
|
-// Убедитесь, что вызвали Vue.use(Vuex) сначала, если используете систему сборки
|
|
|
+```js
|
|
|
+import Vue from 'vue'
|
|
|
+import Vuex from 'vuex'
|
|
|
+
|
|
|
+Vue.use(Vuex)
|
|
|
|
|
|
const store = new Vuex.Store({
|
|
|
state: {
|
|
@@ -33,12 +36,43 @@ const store = new Vuex.Store({
|
|
|
|
|
|
Теперь можно получить доступ к объекту состояния через `store.state` и вызвать изменение состояния с помощью метода `store.commit`:
|
|
|
|
|
|
-``` js
|
|
|
+```js
|
|
|
store.commit('increment')
|
|
|
|
|
|
console.log(store.state.count) // -> 1
|
|
|
```
|
|
|
|
|
|
+Чтобы получить доступ к хранилищу через свойство `this.$store` в компонентах Vue, необходимо установить созданное хранилище в экземпляр Vue. Vuex имеет механизм внедрения хранилища во все дочерние компоненты из корневого экземпляра с помощью опции `store`:
|
|
|
+
|
|
|
+```js
|
|
|
+new Vue({
|
|
|
+ el: '#app',
|
|
|
+ store: store,
|
|
|
+})
|
|
|
+```
|
|
|
+
|
|
|
+:::tip ПРИМЕЧАНИЕ
|
|
|
+Если используете синтаксис ES6, то можно использовать сокращённое обозначение свойства объекта ES6 (его можно использовать, когда ключ объекта имеет то же имя, что и переменная, передаваемая в свойство):
|
|
|
+
|
|
|
+```js
|
|
|
+new Vue({
|
|
|
+ el: '#app',
|
|
|
+ store
|
|
|
+})
|
|
|
+```
|
|
|
+:::
|
|
|
+
|
|
|
+Теперь можно совершить мутацию из метода компонента:
|
|
|
+
|
|
|
+```js
|
|
|
+methods: {
|
|
|
+ increment() {
|
|
|
+ this.$store.commit('increment')
|
|
|
+ console.log(this.$store.state.count)
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
Запомните, причина, по которой мы вызываем мутацию вместо изменения `store.state.count` напрямую, в том, что мы хотим явным образом отслеживать её. Это простое соглашение делает наше намерение более явным, что упрощает понимание происходящих изменений состояния приложения при чтении кода. Кроме того, это позволяет использовать инструменты для отслеживания каждой мутации, создания снимков состояния или даже использования «машины времени» для отладки.
|
|
|
|
|
|
Использование состояния хранилища в компоненте предполагает просто возврат необходимой части состояния в вычисляемом свойстве, поскольку состояние хранилища реактивно. Инициирование изменений — это просто запуск мутаций в методах компонентов.
|