1, commit
// type: mutation类型,
// payload:携带的参数,可选;
// options 里可以有 root:true, 它允许命名空间里提交根的mutation
commit(type:string, payload?:any, option?:Object)
commit(mutation:Object, options?:Object) // 提交mutation是以对象方式提交
2,dispatch
dispatch(type:string, payload?:any, options?:Object):Promise<any>
dispatch(action:Object, options?: Object): Promise<any> // 以对象形式分发action
分发action, options里可以有root: true, 它允许命名空间模块里分发根的action, 返回一个
解析所有被触发的action 处理器的Promise ,
3,replaceState(state:Object)
替换store的根状态,仅用状态合并或时光旅行调试,在分模块下的情况下,会有什么不同?
4,watch(fn: Function, callback: Function, options?: Object): Function
响应式地侦听 fn
的返回值,当值改变时调用回调函数。fn
接收 store 的 state 作为第一个参数,其 getter 作为第二个参数。最后接收一个可选的对象参数表示 Vue 的 vm.$watch 方法的参数。
要停止侦听,调用此方法返回的函数即可停止侦听。
this.$store.watch((state, getters) => getters.loading, () => {
console.log('loaded')
console.log('onSIgnin error', this.error.code)
})
5,subscribe
subscribe(handler:Function, options?:Object):Function
订阅store的mutation, handler 会在每个mutation完成后调用,
接收mutation和经过mutation后的状态作为参数;
store.subscribe((mutation, state) => { })
默认情况下,新的处理函数会添加到其链的末尾,因此在其他处理函数之后执行,
通过想option添加prepend:true,可以把该处理函数添加到其链的最开始;
store.subscribe(handler, {prepedn: true})
要停止订阅,调用此方法返回的函数即可停止订阅。通常用于插件
5,subscribeAction
subscribeAction(handler: Function, options?: Object): Function
订阅 store 的 action。handler
会在每个 action 分发的时候调用并接收 action 描述和当前的 store 的 state 这两个参数:
store.subscribeAction((action, state) => {
console.log(action.type)
console.log(action.payload)
})
默认情况下,新的处理函数会被添加到其链的尾端,因此它会在其它之前已经被添加了的处理函数之后执行。这一行为可以通过向 options
添加 prepend: true
来覆写,即把处理函数添加到其链的最开始。
store.subscribeAction(handler, { prepend: true })
要停止订阅,调用此方法返回的函数即可停止订阅。
subscribeAction
也可以指定订阅处理函数的被调用时机应该在一个 action 分发之前还是之后 (默认行为是之前):
store.subscribeAction({
before: (action, state) => {
console.log(`before action ${action.type}`)
},
after: (action, state) => {
console.log(`after action ${action.type}`)
}
})
subscribeAction
也可以指定一个 error
处理函数以捕获分发 action 的时候被抛出的错误。该函数会从第三个参数接收到一个 error
对象。
store.subscribeAction({
error: (action, state, error) => {
console.log(`error action ${action.type}`)
console.error(error)
}
})
该 subscribeAction
方法常用于插件