🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、概述 Vuex.Store 实例,拥有的通用方法; ## 二、commit * commit(type: string, payload?: any, options?: Object) * commit(mutation: Object, options?: Object) 提交 mutation。options里可以有root: true,它允许在命名空间模块里提交根的 mutation; ## 三、dispatch * dispatch(type: string, payload?: any, options?: Object) * dispatch(action: Object, options?: Object) 分发 action。options里可以有root: true,它允许在命名空间模块里分发根的 action。返回一个解析所有被触发的 action 处理器的 Promise; ## 四、watch * watch(fn: Function, callback: Function, options?: Object): Function 响应式地侦听fn的返回值,当值改变时调用回调函数。fn接收 store 的 state 作为第一个参数,其 getter 作为第二个参数。最后接收一个可选的对象参数表示 Vue 的[`vm.$watch`](https://cn.vuejs.org/v2/api/#vm-watch)方法的参数。要停止侦听,调用此方法返回的函数即可停止侦听。 ## 五、replaceState * replaceState(state: Object) 替换 store 的根状态,仅用状态合并或时光旅行调试; ## 六、subscribe subscribe(handler: Function): Function 订阅 store 的 mutation。handler会在每个 mutation 完成后调用,接收 mutation 和经过 mutation 后的状态作为参数: ~~~ store.subscribe((mutation, state) => { console.log(mutation.type) console.log(mutation.payload) }) ~~~ 要停止订阅,调用此方法返回的函数即可停止订阅。 ## 七、subscribeAction subscribeAction(handler: Function): Function 订阅 store 的 action。handler会在每个 action 分发的时候调用并接收 action 描述和当前的 store 的 state 这两个参数: ~~~ store.subscribeAction((action, state) => { console.log(action.type) console.log(action.payload) }) ~~~ 要停止订阅,调用此方法返回的函数即可停止订阅。 ## 八、registerModule registerModule(path: string | Array, module: Module, options?: Object) 注册一个动态模块,options可以包含preserveState: true以允许保留之前的 state。用于服务端渲染。 ## 九、unregisterModule unregisterModule(path: string | Array) 卸载一个动态模块; ## 十、hotUpdate hotUpdate(newOptions: Object) 热替换新的 action 和 mutation;