diff --git a/docs/ru/actions.md b/docs/ru/actions.md index fec4ffe50..8e9e52055 100644 --- a/docs/ru/actions.md +++ b/docs/ru/actions.md @@ -108,6 +108,9 @@ export default { methods: { ...mapActions([ 'increment' // проксирует this.increment() в this.$store.dispatch('increment') + + // mapActions также поддерживают нагрузку (payloads): + 'incrementBy' // проксирует this.incrementBy(amount) в this.$store.dispatch('incrementBy', amount) ]), ...mapActions({ add: 'increment' // проксирует this.add() в this.$store.dispatch('increment') diff --git a/docs/ru/getters.md b/docs/ru/getters.md index 5f0dd38b2..3fe88e532 100644 --- a/docs/ru/getters.md +++ b/docs/ru/getters.md @@ -61,6 +61,21 @@ computed: { } ``` +Вы также можете передавать аргументы геттерам возвращая функцию. Это особенно полезно, если вы хотите вернуть элемент (или часть элементов) массива по переданному критерию: + +```js +getters: { + // ... + getTodoById: (state, getters) => (id) => { + return getters.todos.find(todo => todo.id === id) + } +} +``` + +``` js +store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false } +``` + ### Вспомогательная функция `mapGetters` Хелпер `mapGetters` попросту проксирует геттеры хранилища через локальные вычисляемые свойства компонента: diff --git a/docs/ru/modules.md b/docs/ru/modules.md index 189e91e05..0b630c778 100644 --- a/docs/ru/modules.md +++ b/docs/ru/modules.md @@ -227,12 +227,18 @@ export function createPlugin (options = {}) { Вы можете зарегистрировать модуль уже и **после** того, как хранилище было создано, используя метод `store.registerModule`: ``` js +// регистрация модуля `myModule` store.registerModule('myModule', { // ... }) + +// регистрация вложенного модуля `nested/myModule` +store.registerModule(['nested', 'myModule'], { + // ... +}) ``` -Состояние модуля будет доступно как `store.state.myModule`. +Состояние модуля будет доступно как `store.state.myModule` и `store.state.nested.myModule`. Динамическая регистрация модулей позволяет другим плагинам Vue также использовать Vuex для управления своим состоянием, добавляя модуль к хранилищу данных приложения. Например, библиотека [`vuex-router-sync`](https://github.com/vuejs/vuex-router-sync) интегрирует vue-router во vuex, отражая изменение текущего пути приложения в динамически присоединённом модуле. diff --git a/docs/ru/strict.md b/docs/ru/strict.md index 673768765..0950868da 100644 --- a/docs/ru/strict.md +++ b/docs/ru/strict.md @@ -1,6 +1,6 @@ -# Strict Mode +# Строгий режим (strict mode) -Для включения strict mode просто укажите `strict: true` при создании хранилища Vuex: +Для включения строгого режима просто укажите `strict: true` при создании хранилища Vuex: ``` js const store = new Vuex.Store({ @@ -9,13 +9,13 @@ const store = new Vuex.Store({ }) ``` -При использовании strict mode любая попытка внесения изменений в состояние Vuex, кроме как через зарегистрированную мутацию, приведёт к появлению ошибки. Это позволяет быть уверенным, что все изменения данных отслеживаются инструментами отладки. +В строгом режиме любая попытка внесения изменений в состояние Vuex кроме мутаций будет выбрасывать ошибку. Это гарантирует, что все мутации состояния будут явно отслежены через инструменты отладки. -### Разработка и production +### Разработка vs. production -**Не используйте strict mode в production-окружении!** Для определения некорректных операций strict mode использует довольно "дорогие" операции глубокого наблюдения за деревом состояния приложения, поэтому удостоверьтесь, что выключили этот режим перед выкладкой на production из соображений повышения производительности! +**Не используйте строгий режим в production!** Строгий режим запускает глубокое отслеживание за деревом состояния приложения в синхронном режиме для обнаружения несоответствующих мутаций, и это может быть затратным для производительности когда совершается большое количество мутаций. Убедитесь, что выключили этот режим в production чтобы избежать ухудшения производительности. -При использовании систем модульной сборки это можно сделать так: +Аналогично плагинам, при использовании инструментов сборки это можно сделать так: ``` js const store = new Vuex.Store({