You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/ru/README.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
Vuex — **паттерн управления состоянием + библиотека** для приложений на Vue.js. Он служит централизованным хранилищем данных для всех компонентов приложения с правилами, гарантирующими, что состояние может быть изменено только предсказуемым образом. Vuex интегрируется с официальным расширением [vue-devtools](https://github.com/vuejs/vue-devtools), предоставляя «из коробки» такие продвинутые возможности, как «машину времени» для отладки и экспорт/импорт слепков состояния данных.
6
6
7
-
###Что такое «паттерн управления состоянием»?
7
+
## Что такое «паттерн управления состоянием»?
8
8
9
9
Давайте начнём с простого приложения Vue, реализующего счётчик:
10
10
@@ -58,7 +58,7 @@ new Vue({
58
58
59
59

60
60
61
-
###Когда следует использовать Vuex?
61
+
## Когда следует использовать Vuex?
62
62
63
63
Vuex помогает управлять совместно используемым состоянием ценой привнесения новых концепций и вспомогательного кода. Компромисс, когда кратковременная продуктивность страдает на благо долгосрочной.
Отслеживание вызова мутаций хранилища. Обработчик `handler` вызывается после каждой мутации и получает в качестве параметров дескриптор мутации и состояние после мутации:
179
+
Отслеживание вызова мутаций хранилища. Обработчик `handler` вызывается после каждой мутации и получает в качестве параметров дескриптор мутации и состояние после мутации.
// для остановки отслеживания нужно вызвать unsubscribe
188
+
unsubscribe()
186
189
```
187
190
188
191
По умолчанию, новый обработчик добавляется в конец цепочки, поэтому он будет выполняться после других обработчиков, добавленных раньше. Это поведение можно переопределить добавив `prepend:true` в `options`, что позволит добавлять обработчик в начало цепочки.
Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
197
+
Метод `subscribe` возвращает функцию `unsubscribe`, которую требуется вызывать когда отслеживание больше не требуется. Например, можно подписаться на модуль Vuex и прекращать отслеживание при удалении регистрации модуля. Или можно вызвать `subscribe` внутри компонента Vue, а позднее уничтожить компонент. В таких случаях, необходимо вручную останавливать отслеживание.
195
198
196
199
Чаще всего используется в плагинах. [Подробнее](../guide/plugins.md)
Отслеживание вызова действий хранилища. Обработчик `handler` вызывается после каждого действия и получает в качестве параметров дескриптор действия и текущее состояние хранилища:
207
+
Отслеживание вызова действий хранилища. Обработчик `handler` вызывается после каждого действия и получает в качестве параметров дескриптор действия и текущее состояние хранилища.
208
+
209
+
Метод `subscribe` возвращает функцию `unsubscribe`, которую требуется вызывать когда отслеживание больше не требуется. Например, при удалении регистрации модуля Vuex или перед уничтожением компонента Vue.
// для остановки отслеживания нужно вызвать unsubscribe
218
+
unsubscribe()
211
219
```
212
220
213
221
По умолчанию, новый обработчик добавляется в конец цепочки, поэтому он будет выполняться после других обработчиков, добавленных раньше. Это поведение можно переопределить добавив `prepend:true` в `options`, что позволит добавлять обработчик в начало цепочки.
Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
227
+
Метод `subscribe` возвращает функцию `unsubscribe`, которую требуется вызывать когда отслеживание больше не требуется. Например, можно подписаться на модуль Vuex и прекращать отслеживание при удалении регистрации модуля. Или можно вызвать `subscribe` внутри компонента Vue, а позднее уничтожить компонент. В таких случаях, необходимо вручную останавливать отслеживание.
220
228
221
229
> Добавлено в версии 3.1.0
222
230
@@ -237,7 +245,7 @@ store.subscribeAction({
237
245
238
246
С версии 3.4.0 в `subscribeAction` также можно указывать обработчик `error` для перехвата ошибки, выброшенной при выполнении действия. В качестве третьего аргумента функция получает объект `error`.
Copy file name to clipboardExpand all lines: docs/ru/guide/README.md
+20-1Lines changed: 20 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -8,14 +8,16 @@
8
8
9
9
2. Нельзя напрямую изменять состояние хранилища. Единственный способ внести изменения — явно **вызвать мутацию**. Это гарантирует, что любое изменение состояния оставляет след и позволяет использовать инструментарий, чтобы лучше понимать ход работы приложения.
10
10
11
-
###Простейшее хранилище
11
+
## Простейшее хранилище
12
12
13
13
:::tip ЗАМЕЧАНИЕ
14
14
В примерах кода документации используется синтаксис ES2015. Если вы с ним ещё не знакомы, [сейчас самое время изучить](https://babeljs.io/docs/learn-es2015/)!
15
15
:::
16
16
17
17
После [установки](../installation.md) Vuex, давайте создадим хранилище. Это довольно просто — необходимо указать начальный объект состояния и некоторые мутации:
Copy file name to clipboardExpand all lines: docs/ru/guide/actions.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ actions: {
39
39
}
40
40
```
41
41
42
-
###Диспетчеризация действий
42
+
## Диспетчеризация действий
43
43
44
44
Действия запускаются методом `store.dispatch`:
45
45
@@ -98,7 +98,7 @@ actions: {
98
98
99
99
Таким образом удаётся организовать поток асинхронных операций, записывая побочные эффекты действий в виде мутаций состояния.
100
100
101
-
###Диспетчеризация действий в компонентах
101
+
## Диспетчеризация действий в компонентах
102
102
103
103
Диспетчеризировать действия в компонентах можно при помощи `this.$store.dispatch('xxx')` или используя вспомогательную функцию `mapActions`, создающую локальные псевдонимы для действий в виде методов компонента (требуется наличие корневого `$store`):
104
104
@@ -121,7 +121,7 @@ export default {
121
121
};
122
122
```
123
123
124
-
###Композиция действий
124
+
## Композиция действий
125
125
126
126
Раз действия зачастую асинхронны, то как узнать, что действие уже завершилось? И, что важнее, как быть со связанными между собой действиями при организации более сложных асинхронных потоков?
Copy file name to clipboardExpand all lines: docs/ru/guide/forms.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ mutations: {
41
41
}
42
42
```
43
43
44
-
###Двунаправленные вычисляемые свойства
44
+
## Двунаправленные вычисляемые свойства
45
45
46
46
Заметно, что получившаяся выше запись — куда многословнее, чем используемая в связке `v-model` с локальным состоянием, да и некоторые полезные возможности `v-model` мы таким образом упускаем. В качестве альтернативы можно предложить использование двунаправленного вычисляемого свойства с сеттером:
Обратите внимание, что геттеры, доступ к которым выполняется как к методам, будут запускаться каждый раз при их вызове, а результаты не будут кэшироваться.
90
90
91
-
###Вспомогательная функция `mapGetters`
91
+
## Вспомогательная функция `mapGetters`
92
92
93
93
Функция `mapGetters` просто проксирует геттеры хранилища в локальные вычисляемые свойства компонента:
0 commit comments