浏览代码

Russian Translation Update (2.3.0) (#737)

* russian docs translation started

* docs/ru/actions.md translated

* docs/ru/api.md translated

* docs/ru/forms.md translated

* api translation fix

* docs/ru/getters.md translated

* docs/ru/getting-started.md translated

* docs/ru/hot-reload.md translated

* docs/ru/installation.md translated

* docs/ru/intro.md translated

* docs/ru/modules.md translated

* docs/ru/README.md translated

* docs/ru/strict.md translated

* docs/ru/structure.md translated

* docs/ru/SUMMARY.md translated (O_O for some reason it happens to be exactly the same as README.md)

* docs/ru/mutations.md translated

* docs/ru/plugins.md translated

* docs/ru/state.md translated

* docs/ru/testing.md translated

* docs/ru/actions.md styling/proof-reading

* docs/ru/api.md styling/proof-reading

* docs/ru/forms.md styling/proof-reading

* docs/ru/getters.md styling/proof-reading

* docs/ru/getting-started.md styling/proof-reading

* docs/ru/hot-reload.md styling/proof-reading

* docs/ru/installation.md styling/proof-reading

* docs/ru/intro.md styling/proof-reading

* docs/ru/modules.md styling/proof-reading

* docs/ru/mutations.md styling/proof-reading

* docs/ru/plugins.md styling/proof-reading

* docs/ru/state.md styling/proof-reading

* docs/ru/strict.md styling/proof-reading

* docs/ru/structure.md styling/proof-reading

* docs/ru/testing.md styling/proof-reading

* docs/ru/intro.md typo fix

* Copyediting RU documentation

* Fix typo

* Change wording around alternative approaches to data handling

* Fix typo

* Fix typo

* Better wording for linters

* Fix header and change wording

* fix typo

* typos reported by @ipelekhan are fixed

* Russian docs translation update

* Fix typo

* Sentence rephrasing and fix punctuation

* Переключил на ветку translation-ru

* - Исправлен пример

* - getting-started.md исправлена ссылка на jsfiddle

* - getters.md добавлена секция про возможность передачи функции в геттерах

* - installation.md добавлен флаг --save

* - modules.md мелкая правка в примере

* Update modules.md

* modules.md ещё мелкая правка в примере

* modules.md добавлен пример регистрации модуля

https://github.com/vuejs/vuex/pull/634

* actions.md расширен пример

* getters.md исправление

* strict.md обновление и добавлено уточнение о затратности

* testing.md исправлен пример конфига webpack

* api.md изменены ссылки

* intro.md изменена ссылка

* state.md изменена ссылка

* api.md добавлены уточнения при определении в модуле

* mutations.md добавлено уточнение примера

* modules.md обновление 2.3.0

* api.md исправлена ошибка
Grigoriy Beziuk 8 年之前
父节点
当前提交
463d66e926
共有 3 个文件被更改,包括 38 次插入4 次删除
  1. 11 2
      docs/ru/api.md
  2. 22 0
      docs/ru/modules.md
  3. 5 2
      docs/ru/mutations.md

+ 11 - 2
docs/ru/api.md

@@ -52,9 +52,18 @@ const store = new Vuex.Store({ ...options })
 
 
     ```
     ```
     state,     // при использовании модулей — локальный state модуля
     state,     // при использовании модулей — локальный state модуля
-    getters,   // то же, что и store.getters
-    rootState  // то же, что и store.state
+    getters    // то же, что и store.getters
     ```
     ```
+
+    При определении в модуле
+    
+    ```
+    state,       // при использовании модулей — локальный state модуля
+    getters,     // локальные геттеры текущего модуля
+    rootState,   // глобальный state
+    rootGetters  // все геттеры
+    ```
+
     Зарегистрированные геттеры далее доступны в `store.getters`.
     Зарегистрированные геттеры далее доступны в `store.getters`.
 
 
     [Подробнее](getters.md)
     [Подробнее](getters.md)

+ 22 - 0
docs/ru/modules.md

@@ -243,3 +243,25 @@ store.registerModule(['nested', 'myModule'], {
 Динамическая регистрация модулей позволяет другим плагинам Vue также использовать Vuex для управления своим состоянием, добавляя модуль к хранилищу данных приложения. Например, библиотека [`vuex-router-sync`](https://github.com/vuejs/vuex-router-sync) интегрирует vue-router во vuex, отражая изменение текущего пути приложения в динамически присоединённом модуле.
 Динамическая регистрация модулей позволяет другим плагинам Vue также использовать Vuex для управления своим состоянием, добавляя модуль к хранилищу данных приложения. Например, библиотека [`vuex-router-sync`](https://github.com/vuejs/vuex-router-sync) интегрирует vue-router во vuex, отражая изменение текущего пути приложения в динамически присоединённом модуле.
 
 
 Удалить динамически зарегистрированный модуль можно с помощью `store.unregisterModule(moduleName)`. Обратите внимание, что статические (определённые на момент создания хранилища) модули при помощи этого метода удалить не получится.
 Удалить динамически зарегистрированный модуль можно с помощью `store.unregisterModule(moduleName)`. Обратите внимание, что статические (определённые на момент создания хранилища) модули при помощи этого метода удалить не получится.
+
+### Повторное использование модулей
+
+Иногда нам может потребоваться создать несколько экземпляров модуля, например:
+
+- Создание нескольких хранилищ, которые используются одним модулем;
+- Регистрация модуля несколько раз в одном хранилище.
+
+Если мы используем просто объект для определения состояния модуля, тогда этот объект состояния будет использоваться по ссылке и вызывать загрязнение состояния хранилища / модуля при его мутациях.
+
+Это фактически та же самая проблема с `data` внутри компонентов Vue. Таким образом решение будет таким же - использовать функцию для объявления состояния модуля (поддержка добавлена в версии 2.3.0+):
+
+``` js
+const MyReusableModule = {
+  state () {
+    return {
+      foo: 'bar'
+    }
+  },
+  // мутации, действия, геттеры...
+}
+```

+ 5 - 2
docs/ru/mutations.md

@@ -135,7 +135,7 @@ mutations: {
 
 
 Теперь представьте, что вы отлаживаете приложение и смотрите в лог мутаций в инструментах разработчика. Для каждой залогированной мутации devtools должен сохранить слепки состояния приложения "до" и "после" её наступления. Однако, асинхронный коллбэк внутри приведённой выше мутации делает это невозможным: мутация-то уже записана, и у devtools нет никакой возможности знать, что далее будет вызван коллбэк, а, значит, и инициируемые им изменения становится, по сути дела, невозможно отследить.
 Теперь представьте, что вы отлаживаете приложение и смотрите в лог мутаций в инструментах разработчика. Для каждой залогированной мутации devtools должен сохранить слепки состояния приложения "до" и "после" её наступления. Однако, асинхронный коллбэк внутри приведённой выше мутации делает это невозможным: мутация-то уже записана, и у devtools нет никакой возможности знать, что далее будет вызван коллбэк, а, значит, и инициируемые им изменения становится, по сути дела, невозможно отследить.
 
 
-### Вызов мутаций из компонентов
+### Вызов мутаций в компонентах
 
 
 Мутации можно вызывать из кода компонентов, используя `this.$store.commit('xxx')`, или применяя хелпер `mapMutations`, который проксирует вызовы `store.commit` через методы компонентов (для этого требуется наличие корневой ссылки на хранилище `$store`):
 Мутации можно вызывать из кода компонентов, используя `this.$store.commit('xxx')`, или применяя хелпер `mapMutations`, который проксирует вызовы `store.commit` через методы компонентов (для этого требуется наличие корневой ссылки на хранилище `$store`):
 
 
@@ -146,7 +146,10 @@ export default {
   // ...
   // ...
   methods: {
   methods: {
     ...mapMutations([
     ...mapMutations([
-      'increment' // this.increment() будет вызывать this.$store.commit('increment')
+      'increment', // this.increment() будет вызывать this.$store.commit('increment')
+
+      // mapMutations также поддерживает нагрузку:
+      'incrementBy' // this.incrementBy(amount) будет вызывать this.$store.commit('incrementBy', amount)
     ]),
     ]),
     ...mapMutations({
     ...mapMutations({
       add: 'increment' // this.add() будет вызывать this.$store.commit('increment')
       add: 'increment' // this.add() будет вызывать this.$store.commit('increment')