import Vuex from 'vuex'
const store = new Vuex.Store({ ...options })
state
Object
Корневой объект состояния хранилища 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
}
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>
Массив функций-плагинов, которые будут применены к хранилищу. Плагины попросту получают хранилище в качестве единственного аргумента, и могут как отслеживать мутации (для сохранения исходящих данных, логирования, или отладки) или инициировать их (для обработки входящих данных, например вебсокетов или observables).
strict
Boolean
false
Заставляет хранилище Vuex использовать strict mode. В strict mode любые изменения состояния, происходящие за пределами обработчиков мутаций, будут выбрасывать ошибки.
state
Object
Корневое состояние. Только для чтения.
getters
Object
Зарегистрированные геттеры. Только для чтения.
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)
})
Чаще всего используется в плагинах. Подробнее
registerModule(path: string | Array<string>, module: Module)
Регистрирует динамический модуль. Подробнее
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
, которые связаны с указанным пространством имён. Подробнее