From 1407257032ec6872648c85dfa3c8c53373c84737 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Thu, 20 Jul 2017 22:16:03 +0300 Subject: [PATCH 1/4] =?UTF-8?q?modules.md=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/modules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/modules.md b/docs/ru/modules.md index 0c4d36189..c58c01ad5 100644 --- a/docs/ru/modules.md +++ b/docs/ru/modules.md @@ -248,7 +248,7 @@ store.registerModule(['nested', 'myModule'], { Иногда нам может потребоваться создать несколько экземпляров модуля, например: -- Создание нескольких хранилищ, которые используются одним модулем (например, чтобы [избегать синглетонов в сохранением состояния в SSR](https://ssr.vuejs.org/ru/structure.html#избегайте-синглетонов-с-состоянием) при использовании опции `runInNewContext` в значении `false` или `'once'`); +- Создание нескольких хранилищ, которые используются одним модулем (например, чтобы [избегать синглтонов в сохранением состояния в SSR](https://ssr.vuejs.org/ru/structure.html#избегайте-синглтонов-с-состоянием) при использовании опции `runInNewContext` в значении `false` или `'once'`); - Регистрация модуля несколько раз в одном хранилище. Если мы используем просто объект для определения состояния модуля, тогда этот объект состояния будет использоваться по ссылке и вызывать загрязнение состояния хранилища / модуля при его мутациях. From 3f75d1c8864c5b6a700f8a8a06dd6c4156ec542d Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 7 Aug 2017 08:51:24 +0300 Subject: [PATCH 2/4] =?UTF-8?q?core-concept.md=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/SUMMARY.md | 2 +- docs/ru/core-concepts.md | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 docs/ru/core-concepts.md diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index 395e90558..44dc23a80 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -9,7 +9,7 @@ - [Установка](installation.md) - [Что такое Vuex?](intro.md) - [Начало работы](getting-started.md) -- Основные концепции +- [Основные концепции](core-concepts.md) - [Состояние](state.md) - [Геттеры](getters.md) - [Мутации](mutations.md) diff --git a/docs/ru/core-concepts.md b/docs/ru/core-concepts.md new file mode 100644 index 000000000..199274729 --- /dev/null +++ b/docs/ru/core-concepts.md @@ -0,0 +1,12 @@ +# Основные понятия + +В этих главах мы изучим основные понятия Vuex: + - [Состояние](state.md) + - [Геттеры](getters.md) + - [Мутации](mutations.md) + - [Действия](actions.md) + - [Модули](modules.md) + +Для использования vuex необходимо глубокое понимание всех этих понятий. + +Давайте начнём. \ No newline at end of file From 543b60cd62f025777c7ac7a6652326631c157620 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Thu, 17 Aug 2017 11:52:34 +0300 Subject: [PATCH 3/4] =?UTF-8?q?api.md=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D1=80=D0=BE=20createNamespace?= =?UTF-8?q?dHelpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/ru/api.md b/docs/ru/api.md index 212354e84..76d763454 100644 --- a/docs/ru/api.md +++ b/docs/ru/api.md @@ -193,3 +193,7 @@ const store = new Vuex.Store({ ...options }) Создаёт проксирующие методы компонента, позволяющие инициировать мутации. [Подробнее](mutations.md#вызов-мутаций-из-компонентов) Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) + +- **`createNamespacedHelpers(namespace: string): Object`** + + Создаёт вспомогательные функции для связывания с компонентами для указанного пространства имён. Возвращаемый объект содержит `mapState`, `mapGetters`, `mapActions` и `mapMutations`, которые связаны с указанным пространством имён. [Подробнее](modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) \ No newline at end of file From 1c19c94e53ef4042d19eb5095f83530dfec2014d Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Thu, 17 Aug 2017 11:52:42 +0300 Subject: [PATCH 4/4] =?UTF-8?q?modules.md=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D1=80=D0=BE=20createNamespace?= =?UTF-8?q?dHelpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/modules.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/ru/modules.md b/docs/ru/modules.md index c58c01ad5..f8821e2d6 100644 --- a/docs/ru/modules.md +++ b/docs/ru/modules.md @@ -206,6 +206,31 @@ methods: { } ``` +Кроме того, вы можете создать вспомогательные функции с помощью `createNamespacedHelpers`. Она возвращает объект, в котором все вспомогательные функции для связывания с компонентами будут указывать на переданное пространство имён: + +``` js +import { createNamespacedHelpers } from 'vuex' + +const { mapState, mapActions } = createNamespacedHelpers('some/nested/module') + +export default { + computed: { + // будет указывать на `some/nested/module` + ...mapState({ + a: state => state.a, + b: state => state.b + }) + }, + methods: { + // будет указывать на `some/nested/module` + ...mapActions([ + 'foo', + 'bar' + ]) + } +} +``` + #### Уточнение для разработчиков плагинов Вас может обеспокоить непредсказуемость пространства имён для ваших модулей, когда вы создаёте [плагин](plugins.md) с собственными модулями и возможностью пользователям добавлять их в хранилище Vuex. Ваши модули будут также помещены в пространство имён, если пользователи плагина добавляют ваши модули в модуль со своим пространством имён. Чтобы приспособиться к этой ситуации, вам может потребоваться получить значение пространства имён через настройки плагина: