diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index 3319c309c..77b09d322 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -6,7 +6,7 @@ - [Установка](installation.md) - [Что такое Vuex?](intro.md) - [Начало работы](getting-started.md) -- [Основные концепции](core-concepts.md) +- [Основные понятия](core-concepts.md) - [Состояние](state.md) - [Геттеры](getters.md) - [Мутации](mutations.md) @@ -14,7 +14,7 @@ - [Модули](modules.md) - [Структура приложения](structure.md) - [Плагины](plugins.md) -- [Strict Mode](strict.md) +- [Строгий режим (strict mode)](strict.md) - [Обработка форм](forms.md) - [Тестирование](testing.md) - [Горячая замена](hot-reload.md) diff --git a/docs/ru/actions.md b/docs/ru/actions.md index 680ca54e2..4cec3a54d 100644 --- a/docs/ru/actions.md +++ b/docs/ru/actions.md @@ -98,7 +98,7 @@ actions: { ### Диспетчеризация действий в компонентах -Диспетчеризовать действия в компонентах можно при помощи `this.$store.dispatch('xxx')`, или используя вспомогательную функцию `mapActions`, создающую локальные псевдонимы для действий в виде методов компонента (требуется наличие корневого `$store`): +Диспетчеризировать действия в компонентах можно при помощи `this.$store.dispatch('xxx')` или используя вспомогательную функцию `mapActions`, создающую локальные псевдонимы для действий в виде методов компонента (требуется наличие корневого `$store`): ``` js import { mapActions } from 'vuex' @@ -159,7 +159,7 @@ actions: { } ``` -Наконец, если мы используем [async / await](https://tc39.github.io/ecmascript-asyncawait/), мы можем компоновать наши действия следующим образом: +Наконец, если мы используем [async / await](https://tc39.github.io/ecmascript-asyncawait/), то можем компоновать наши действия следующим образом: ``` js // предположим, что `getData()` и `getOtherData()` возвращают Promise diff --git a/docs/ru/api.md b/docs/ru/api.md index b7817a650..2cd6a7ae3 100644 --- a/docs/ru/api.md +++ b/docs/ru/api.md @@ -97,7 +97,7 @@ const store = new Vuex.Store({ ...options }) - тип: `Array` - Массив функций-плагинов, которые будут применены к хранилищу. Плагины попросту получают хранилище в качестве единственного аргумента, и могут как отслеживать мутации (для сохранения исходящих данных, логирования, или отладки) или инициировать их (для обработки входящих данных, например вебсокетов или observables). + Массив функций-плагинов, которые будут применены к хранилищу. Плагины попросту получают хранилище в качестве единственного аргумента, и могут как отслеживать мутации (для сохранения исходящих данных, логирования или отладки) или инициировать их (для обработки входящих данных, например, веб-сокетов или наблюдателей). [Подробнее](plugins.md) @@ -136,7 +136,7 @@ const store = new Vuex.Store({ ...options }) - **`replaceState(state: Object)`** - Позволяет заменить корневое состояние хранилища. Используйте только для гидрации состояния / функционала "машины времени". + Позволяет заменить корневое состояние хранилища. Используйте только для гидрации состояния / функциональности "машины времени". - **`watch(getter: Function, cb: Function, options?: Object)`** diff --git a/docs/ru/getters.md b/docs/ru/getters.md index 9918065f6..f34f637e8 100644 --- a/docs/ru/getters.md +++ b/docs/ru/getters.md @@ -10,7 +10,7 @@ computed: { } ``` -Если этот функционал требуется более чем одному компоненту, понадобится либо дублировать функцию, либо выносить её в совместно используемый хелпер и импортировать в нескольких местах. Оба эти подхода далеки от идеала. +Если эта функциональность требуется более чем одному компоненту, понадобится либо дублировать функцию, либо выносить её в совместно используемый хелпер и импортировать в нескольких местах. Оба эти подхода далеки от идеала. Vuex позволяет определять в хранилище «геттеры». Вы можете считать их вычисляемыми свойствами для хранилища. Как и вычисляемые свойства, результаты геттера кэшируются, основываясь на своих зависимостях и будут пересчитаны только тогда, когда изменится одна из его зависимостей. @@ -53,7 +53,7 @@ getters: { store.getters.doneTodosCount // -> 1 ``` -В компонентах геттеры можно использовать например таким образом: +В компонентах геттеры можно использовать, например, таким образом: ``` js computed: { diff --git a/docs/ru/getting-started.md b/docs/ru/getting-started.md index 615d081cd..66ccefbd9 100644 --- a/docs/ru/getting-started.md +++ b/docs/ru/getting-started.md @@ -4,7 +4,7 @@ 1. Хранилища Vuex реактивны. Если компоненты Vue зависят от их состояния, изменение состояния хранилища спровоцирует соответствующие изменения компонентов. -2. Непосредственное изменение состояния хранилища запрещено. Единственный способ внести изменения — явно **вызвать мутацию**. Этот подход позволяет быть уверенным, что каждое изменение оставляет в системе след, и даёт возможность использовать инструменты, позволяющие лучше понять работу приложения. +2. Непосредственное изменение состояния хранилища запрещено. Единственный способ внести изменения — явно **вызвать мутацию**. Этот подход позволяет быть уверенным, что каждое изменение оставляет в системе след и даёт возможность использовать инструменты, позволяющие лучше понять работу приложения. ### Простейшее Хранилище @@ -27,7 +27,7 @@ const store = new Vuex.Store({ }) ``` -Теперь мы можем получить доступ к объекту состояния `store.state`, или вызвать изменение состояния методом `store.commit`: +Теперь мы можем получить доступ к объекту состояния `store.state` или вызвать изменение состояния методом `store.commit`: ``` js store.commit('increment') diff --git a/docs/ru/hot-reload.md b/docs/ru/hot-reload.md index 942347131..d7591f11a 100644 --- a/docs/ru/hot-reload.md +++ b/docs/ru/hot-reload.md @@ -1,6 +1,6 @@ # Горячая замена -Vuex поддерживает горячую замену мутаций, модулей, действий и геттеров в момент разработки с помощью [webpack Hot Module Replacement API](https://webpack.js.org/guides/hot-module-replacement/). Аналогичный функционал в Browserify достижим при использовании плагина [browserify-hmr](https://github.com/AgentME/browserify-hmr/). +Vuex поддерживает горячую замену мутаций, модулей, действий и геттеров в момент разработки с помощью [webpack Hot Module Replacement API](https://webpack.js.org/guides/hot-module-replacement/). Аналогичная функциональность в Browserify достижима при использовании плагина [browserify-hmr](https://github.com/AgentME/browserify-hmr/). Для мутаций и модулей необходимо использовать метод API `store.hotUpdate()`: diff --git a/docs/ru/intro.md b/docs/ru/intro.md index 0ee425115..722941ba2 100644 --- a/docs/ru/intro.md +++ b/docs/ru/intro.md @@ -1,6 +1,6 @@ # Что такое Vuex? -Vuex - это **паттерн управления состоянием и библиотека** для приложений на Vue.js. Он служит центральным хранилищем данных для всех компонентов приложения и обеспечивает предсказуемость изменения данных при помощи определённых правил. Кроме того, Vuex интегрируется с официальным [расширением инструментов разработчика](https://github.com/vuejs/vue-devtools) Vue, предоставляя "из коробки" такие продвинутые возможности как "машину времени" при отладке и экспорт/импорт слепков состояния данных. +Vuex — это **паттерн управления состоянием и библиотека** для приложений на Vue.js. Он служит центральным хранилищем данных для всех компонентов приложения и обеспечивает предсказуемость изменения данных при помощи определённых правил. Кроме того, Vuex интегрируется с официальным [расширением инструментов разработчика](https://github.com/vuejs/vue-devtools) Vue, предоставляя "из коробки" такие продвинутые возможности, как "машину времени" при отладке и экспорт/импорт слепков состояния данных. ### Что такое "паттерн управления состоянием"? @@ -48,7 +48,7 @@ new Vue({ Так почему бы не вынести всё общее состояние приложения из компонентов в глобальный синглтон? При использовании этого подхода, дерево компонентов превращается в одно большое "представление", а каждый компонент получает доступ к состоянию приложения, наряду с возможностью вызывать действия для изменения состояния, независимо от расположения этого компонента в дереве. -Кроме того, чётко определяя и разделяя концепции, возникающие при управлении состоянием и требуя соблюдения некоторых правил, мы улучшаем структурированность и поддерживаемость нашего кода. +Кроме того, чётко определяя и разделяя концепции, возникающие при управлении состоянием, и требуя соблюдения некоторых правил, мы улучшаем структурированность и поддерживаемость нашего кода. Такова основная идея, лежащая в основе Vuex, вдохновлённого [Flux](https://facebook.github.io/flux/docs/overview.html), [Redux](http://redux.js.org/) и [Архитектурой Elm](https://guide.elm-lang.org/architecture/). В отличие от других паттернов, Vuex реализован в виде библиотеки, специально заточенной на использование совместно с Vue.js и использующей его производительную систему реактивных обновлений. diff --git a/docs/ru/modules.md b/docs/ru/modules.md index a57b9615d..7c9f203cc 100644 --- a/docs/ru/modules.md +++ b/docs/ru/modules.md @@ -2,7 +2,7 @@ Из-за использования единого дерева состояния, все глобальные данные приложения оказываются помещены в один большой объект. По мере роста приложения, хранилище может существенно раздуться. -Чтобы помочь в этой беде, Vuex позволяет разделять хранилище на **модули**. Каждый модуль может содержать собственное состояние, мутации, действия, геттеры, и даже встроенные подмодули — структура фрактальна: +Чтобы помочь в этой беде, Vuex позволяет разделять хранилище на **модули**. Каждый модуль может содержать собственное состояние, мутации, действия, геттеры и даже встроенные подмодули — структура фрактальна: ``` js const moduleA = { @@ -280,7 +280,7 @@ store.registerModule(['nested', 'myModule'], { Если мы используем просто объект для определения состояния модуля, тогда этот объект состояния будет использоваться по ссылке и вызывать загрязнение состояния хранилища / модуля при его мутациях. -Это фактически та же самая проблема с `data` внутри компонентов Vue. Таким образом решение будет таким же - использовать функцию для объявления состояния модуля (поддержка добавлена в версии 2.3.0+): +Это фактически та же самая проблема с `data` внутри компонентов Vue. Таким образом решение будет таким же — использовать функцию для объявления состояния модуля (поддержка добавлена в версии 2.3.0+): ``` js const MyReusableModule = { diff --git a/docs/ru/mutations.md b/docs/ru/mutations.md index 7945a7e0e..7898b648b 100644 --- a/docs/ru/mutations.md +++ b/docs/ru/mutations.md @@ -1,6 +1,6 @@ # Мутации -Единственным способом изменения состояния хранилища во Vuex являются мутации. Мутации во Vuex очень похожи на события: каждая мутация имеет строковый **тип** и **функцию-обработчик**. В этом обработчике и происходят собственно изменения состояния, переданного в функцию первым аргументом: +Единственным способом изменения состояния хранилища во Vuex являются мутации. Мутации во Vuex очень похожи на события: каждая мутация имеет строковый **тип** и **функцию-обработчик**. В этом обработчике и происходят, собственно, изменения состояния, переданного в функцию первым аргументом: ``` js const store = new Vuex.Store({ diff --git a/docs/ru/plugins.md b/docs/ru/plugins.md index c15586f77..3e274af80 100644 --- a/docs/ru/plugins.md +++ b/docs/ru/plugins.md @@ -25,7 +25,7 @@ const store = new Vuex.Store({ Плагинам не разрешается напрямую изменять состояние приложения — как и компоненты, они могут только вызывать изменения опосредованно, используя мутации. -Вызывая мутации, плагин может синхронизировать источник данных с хранилищем данных в приложении. Например, для синхронизации хранилища с вебсокетом (пример намеренно упрощён, в реальной ситуации у `createPlugin` были бы дополнительные опции): +Вызывая мутации, плагин может синхронизировать источник данных с хранилищем данных в приложении. Например, для синхронизации хранилища с веб-сокетом (пример намеренно упрощён, в реальной ситуации у `createPlugin` были бы дополнительные опции): ``` js export default function createWebSocketPlugin (socket) { @@ -103,8 +103,8 @@ const store = new Vuex.Store({ const logger = createLogger({ collapsed: false, // автоматически раскрывать залогированные мутации filter (mutation, stateBefore, stateAfter) { - // возвращает `true` если мутация должна быть залогирована - // `mutation` это объект `{ type, payload }` + // возвращает `true`, если мутация должна быть залогирована + // `mutation` — это объект `{ type, payload }` return mutation.type !== "aBlacklistedMutation" }, transformer (state) { @@ -121,6 +121,6 @@ const logger = createLogger({ }) ``` -Логирующий плагин можно включить также и используя отдельный тег `