Справочник API
Vuex.Store
import Vuex from 'vuex'
const store = new Vuex.Store({ ...options })
Опции конструктора Vuex.Store
state
тип:
Object | FunctionКорневой объект состояния хранилища Vuex. Подробнее
Если вы передаёте функцию, возвращающую объект, то возвращаемый объект будет использован в качестве корневого состояния. Это может быть полезным, если вы хотите повторно использовать объект состояния, особенно при повторном использовании модулей. Подробнее
mutations
тип:
{ [type: string]: Function }Регистрирует доступные для хранилища мутации. Обработчики мутаций первым аргументом всегда получают
state(при использовании модулей это будет локальный state модуля). Вторым аргументом передаётся "нагрузка" (payload), если она есть.
actions
тип:
{ [type: string]: Function }Регистрирует действия хранилища. В функции-обработчики передаётся объект
context, со следующими свойствами:{ state, // то же, что и `store.state`, или локальный state при использовании модулей rootState, // то же, что и `store.state`, только при использовании модулей commit, // то же, что и `store.commit` dispatch, // то же, что и `store.dispatch` getters, // то же, что и `store.getters` rootGetters // то же, что и `store.getters`, только в модулях }
getters
тип:
{ [key: string]: Function }Регистрирует геттеры, используемые в хранилище. Геттер-функции при вызове получают следующие аргументы:
state, // при использовании модулей — локальный state модуля getters // то же, что и store.gettersПри определении в модуле
state, // при использовании модулей — локальный state модуля getters, // локальные геттеры текущего модуля rootState, // глобальный state rootGetters // все геттерыЗарегистрированные геттеры далее доступны в
store.getters.
modules
тип:
ObjectОбъект, содержащий подмодули для помещения в хранилище, в формате:
{ key: { state, namespaced?, mutations?, actions?, getters?, modules? }, ... }Каждый модуль может содержать
stateиmutations, как и корневое хранилище. Состояние модуля будет прикреплено к корневому, по указанному ключу. Мутации и геттеры модуля получают при вызове первым аргументом только локальное состояние, а не корневое. При вызове действийcontext.stateаналогичным образом указывает на локальное состояние модуля.
plugins
тип:
Array<Function>Массив функций-плагинов, которые будут применены к хранилищу. Плагины попросту получают хранилище в качестве единственного аргумента, и могут как отслеживать мутации (для сохранения исходящих данных, логирования или отладки) или инициировать их (для обработки входящих данных, например, веб-сокетов или наблюдателей).
strict
- тип:
Boolean default:
falseЗаставляет хранилище Vuex использовать strict mode. В strict mode любые изменения состояния, происходящие за пределами обработчиков мутаций, будут выбрасывать ошибки.
- тип:
Свойства экземпляра Vuex.Store
state
тип:
ObjectКорневое состояние. Только для чтения.
getters
тип:
ObjectЗарегистрированные геттеры. Только для чтения.
Методы экземпляра Vuex.Store
commit(type: string, payload?: any, options?: Object) | commit(mutation: Object, options?: Object)Запускает мутацию.
optionsможет содержать опциюroot: trueчто разрешает совершать корневые (root) мутации в модулях со своим пространством имён. Подробнееdispatch(type: string, payload?: any, options?: Object) | dispatch(action: Object, options?: Object)Инициирует действие.
optionsможет содержать опциюroot: trueчто разрешает совершать корневые (root) действия в модулях со своим пространством имён. Возвращает Promise который разрешает все обработчики инициируемых действий. ПодробнееreplaceState(state: Object)Позволяет заменить корневое состояние хранилища. Используйте только для гидрации состояния / функциональности "машины времени".
watch(getter: Function, cb: Function, options?: Object)Устанавливает наблюдение за возвращаемым значением геттера, вызывая коллбэк в случае его изменения. Геттер получает состояние хранилища первым аргументом, и геттеры вторым аргументом. Возможно указание дополнительного объекта опций, с такими же параметрами как и у метода
vm.$watchкорневой библиотеки Vue.Для прекращения наблюдения, необходимо вызвать возвращаемую функцию обработчик.
subscribe(handler: Function)Подписывается на мутации хранилища. Обработчик
handlerвызывается после каждой мутации и получает в качестве параметров дескриптор мутации и состояние после мутации:store.subscribe((mutation, state) => { console.log(mutation.type) console.log(mutation.payload) })Чаще всего используется в плагинах. Подробнее
subscribeAction(handler: Function)Добавлено в версии 2.5.0
Подписывается на действие хранилища. Обработчик
handlerвызывается после каждого действия и получает в качестве параметров дескриптов действия и текущее состояние хранилища:store.subscribeAction((action, state) => { console.log(action.type) console.log(action.payload) })Чаще всего используется в плагинах. Подробнее
registerModule(path: string | Array<string>, module: Module, options?: Object)Регистрирует динамический модуль. Подробнее
optionsможет иметь опциюpreserveState: true, что позволяет сохранить предыдущее состояние. Полезно с рендерингом на стороне сервера.unregisterModule(path: string | Array<string>)Разрегистрирует динамический модуль. Подробнее
hotUpdate(newOptions: Object)Осуществляет горячую замену действий и мутаций. Подробнее
Вспомогательные функции для связывания с компонентами
mapState(namespace?: string, map: Array<string> | Object): ObjectСоздаёт проксирующие вычисляемые свойства компонента, возвращающие поддерево state'а хранилища Vuex Подробнее
Первый аргумент опционально может быть строкой с указанным namespace. Подробнее
mapGetters(namespace?: string, map: Array<string> | Object): ObjectСоздаёт проксирующие вычисляемые свойства компонента, проксирующие доступ к геттерам. Подробнее
Первый аргумент опционально может быть строкой с указанным namespace. Подробнее
mapActions(namespace?: string, map: Array<string> | Object): ObjectСоздаёт проксирующие методы компонента, позволяющие диспетчеризировать действия. Подробнее
Первый аргумент опционально может быть строкой с указанным namespace. Подробнее
mapMutations(namespace?: string, map: Array<string> | Object): ObjectСоздаёт проксирующие методы компонента, позволяющие инициировать мутации. Подробнее
Первый аргумент опционально может быть строкой с указанным namespace. Подробнее
createNamespacedHelpers(namespace: string): ObjectСоздаёт вспомогательные функции для связывания с компонентами для указанного пространства имён. Возвращаемый объект содержит
mapState,mapGetters,mapActionsиmapMutations, которые связаны с указанным пространством имён. Подробнее