|
6 年之前 | |
---|---|---|
.. | ||
README.md | 6 年之前 |
import Vuex from 'vuex';
const store = new Vuex.Store({ ...options });
Object | Function
Корневой объект состояния хранилища Vuex. Подробнее
При передаче функции, возвращающей объект, возвращаемый объект будет использован в качестве корневого состояния. Это пригодится, если необходимо повторно использовать объект состояния, особенно при повторном использовании модулей. Подробнее
{ [type: string]: Function }
Доступные мутации хранилища. Обработчики мутаций первым аргументом получают state
(при использовании модулей это будет локальное состояние модуля). Вторым аргументом передаётся «нагрузка» (payload
), если она есть.
{ [type: string]: Function }
Доступные действия хранилища. В обработчики передаётся объект context
, со следующими свойствами:
{
state, // то же, что и `store.state`, или локальный state при использовании модулей
rootState, // то же, что и `store.state`, только при использовании модулей
commit, // то же, что и `store.commit`
dispatch, // то же, что и `store.dispatch`
getters, // то же, что и `store.getters`
rootGetters; // то же, что и `store.getters`, только в модулях
}
Вторым аргументом передаётся «нагрузка» (payload
), если она есть.
{ [key: string]: Function }
Доступные геттеры хранилища. Функция получает следующие аргументы:
state, // при использовании модулей — локальный state модуля
getters // то же, что и store.getters
При определении в модуле
state, // при использовании модулей — локальный state модуля
getters, // локальные геттеры текущего модуля
rootState, // глобальный state
rootGetters // все геттеры
Зарегистрированные геттеры доступны через store.getters
.
Object
Объект, содержащий под-модули для помещения в хранилище, в формате:
{
key: {
state,
namespaced?,
mutations?,
actions?,
getters?,
modules?
},
...
}
У каждого модуля могут быть свои state
и mutations
, аналогично корневому хранилищу. Состояние модуля прикрепляется к корневому, по указанному ключу. Мутации и геттеры модуля получают первым аргументом локальное состояние, а не корневое. При вызове действий context.state
аналогичным образом указывает на локальное состояние модуля.
Array<Function>
Массив функций-плагинов, которые применяются к хранилищу. Плагины просто получают хранилище в качестве единственного аргумента, и могут как отслеживать мутации (для сохранения исходящих данных, логирования или отладки) или инициировать их (для обработки входящих данных, например, websockets или observables).
Boolean
false
Форсирует использование «строгого режима» в хранилище Vuex. В нём любые изменения состояния, происходящие вне обработчиков мутаций, будут выбрасывать ошибки.
Boolean
Интеграция в devtools конкретного экземпляра Vuex. Например, передача false
сообщает экземпляру хранилища Vuex, что не требуется подписываться на плагин devtools. Это будет полезно если у вас несколько хранилищ на одной странице.
{
devtools: false
}
Object
Корневое состояние. Только для чтения.
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(fn: Function, callback: Function, options?: Object): Function
Реактивно отслеживает возвращаемое значение fn
, и вызывает коллбэк в случае изменений. Первым аргументом fn
будет состояние хранилища, вторым — геттеры. Опционально может принимать объект с настройками, с такими же параметрами как и у метода Vue vm.$watch
.
Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
subscribe(handler: Function): Function
Отслеживание вызова мутаций хранилища. Обработчик handler
вызывается после каждой мутации и получает в качестве параметров дескриптор мутации и состояние после мутации:
store.subscribe((mutation, state) => {
console.log(mutation.type);
console.log(mutation.payload);
});
Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
Чаще всего используется в плагинах. Подробнее
subscribeAction(handler: Function): Function
Добавлено в версии 2.5.0
Отслеживание вызова действий хранилища. Обработчик handler
вызывается после каждого действия и получает в качестве параметров дескриптор действия и текущее состояние хранилища:
store.subscribeAction((action, state) => {
console.log(action.type);
console.log(action.payload);
});
Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
Добавлено в версии 3.1.0
Начиная с версии 3.1.0, в subscribeAction
также можно определять, должен ли обработчик вызываться до или после вызова действия (по умолчанию поведение до):
store.subscribeAction({
before: (action, state) => {
console.log(`before action ${action.type}`)
},
after: (action, state) => {
console.log(`after action ${action.type}`)
}
})
Чаще всего используется в плагинах. Подробнее
registerModule(path: string | Array<string>, module: Module, options?: Object)
Регистрирует динамический модуль. Подробнее
options
может иметь опцию preserveState: true
, что позволяет сохранить предыдущее состояние. Полезно при отрисовке на стороне сервера (SSR).
unregisterModule(path: string | Array<string>)
Удаление зарегистрированного динамического модуля. Подробнее
hotUpdate(newOptions: Object)
Горячая перезагрузка действий и мутаций. Подробнее
mapState(namespace?: string, map: Array<string> | Object<string | function>): Object
Создаёт вычисляемые свойства компонента, возвращающие под-дерево состояния хранилища Vuex. Подробнее
Первый опциональный аргумент может быть строкой пространства имён. Подробнее
Второй аргумент вместо объекта может быть функцией. function(state: any)
mapGetters(namespace?: string, map: Array<string> | Object<string>): Object
Создаёт вычисляемые свойства компонента для доступа к геттерам. Подробнее
Первый опциональный аргумент может быть строкой пространства имён. Подробнее
mapActions(namespace?: string, map: Array<string> | Object<string | function>): Object
Создаёт проксирующие методы компонента для вызова действий хранилища. Подробнее
Первый опциональный аргумент может быть строкой пространства имён. Подробнее
Второй аргумент вместо объекта может быть функцией. function(dispatch: function, ...args: any[])
mapMutations(namespace?: string, map: Array<string> | Object<string | function>): Object
Создаёт проксирующие методы компонента для вызова мутаций хранилища. Подробнее
Первый опциональный аргумент может быть строкой пространства имён. Подробнее
Второй аргумент вместо объекта может быть функцией. function(commit: function, ...args: any[])
createNamespacedHelpers(namespace: string): Object
Создаёт вспомогательные функции связывания с компонентами для указанного пространства имён. Возвращаемый объект содержит mapState
, mapGetters
, mapActions
и mapMutations
, которые связаны с указанным пространством имён. Подробнее