Vuex的API文档说明详解
概述
importVuexfrom'vuex'
conststore=newVuex.Store({...options})
构造器选项
state
类型:Object
Vuexstore实例的根state对象
mutations
类型:{[type:string]:Function}
在store上注册mutation,处理函数总是接受state作为第一个参数(如果定义在模块中,则为模块的局部状态),payload作为第二个参数(可选)
actions
类型:{[type:string]:Function}
在store上注册action。处理函数接受一个context对象,包含以下属性:
{ state,//等同于store.state,若在模块中则为局部状态 rootState,//等同于store.state,只存在于模块中 commit,//等同于store.commit dispatch,//等同于store.dispatch getters//等同于store.getters }
getters
类型:{[key:string]:Function}
在store上注册getter,getter方法接受以下参数:
state, //如果在模块中定义则为模块的局部状态
getters, //等同于store.getters
当定义在一个模块里时会特别一些
state, //如果在模块中定义则为模块的局部状态
getters, //等同于store.getters
rootState //等同于store.state
rootGetters //所有getters
注册的getter暴露为store.getters
modules
类型:Object
包含了子模块的对象,会被合并到store
{ key:{ state, namespaced?, mutations, actions?, getters?, modules? }, ... }
与根模块的选项一样,每个模块也包含state和mutations选项。模块的状态使用key关联到store的根状态。模块的mutation和getter只会接收module的局部状态作为第一个参数,而不是根状态,并且模块action的context.state同样指向局部状态
plugins
类型:Array
一个数组,包含应用在store上的插件方法。这些插件直接接收store作为唯一参数,可以监听mutation(用于外部地数据持久化、记录或调试)或者提交mutation(用于内部数据,例如websocket或某些观察者)
strict
类型:Boolean
默认值:false
使Vuexstore进入严格模式,在严格模式下,任何mutation处理函数以外修改Vuexstate都会抛出错误
实例属性
state
类型:Object
根状态,只读
getters
类型:Object
暴露出注册的getter,只读
实例方法
commit(type:string,payload?:any,options?:Object)|commit(mutation:Object,options?:Object)
提交mutation。options里可以有root:true,它允许在命名空间模块里提交根的mutation
dispatch(type:string,payload?:any,options?:Object)|dispatch(action:Object,options?:Object)
分发action。options里可以有root:true,它允许在命名空间模块里分发根的action。返回一个解析所有被触发的action处理器的Promise
replaceState(state:Object)
替换store的根状态,仅用状态合并或时光旅行调试
watch(getter:Function,cb:Function,options?:Object)
响应式地监测一个getter方法的返回值,当值改变时调用回调函数。getter接收store的状态作为唯一参数。接收一个可选的对象参数表示Vue的vm.$watch方法的参数。
要停止监测,直接调用返回的处理函数
subscribe(handler:Function)
注册监听store的mutation。handler会在每个mutation完成后调用,接收mutation和经过mutation后的状态作为参数
store.subscribe((mutation,state)=>{ console.log(mutation.type) console.log(mutation.payload) })
通常用于插件
registerModule(path:string|Array,module:Module)
注册一个动态模块
unregisterModule(path:string|Array)
卸载一个动态模块
hotUpdate(newOptions:Object)
热替换新的action和mutation
辅助函数
mapState(namespace?:string,map:Array|Object):Object
为组件创建计算属性以返回Vuexstore中的状态。第一个参数是可选的,可以是一个命名空间字符串
mapGetters(namespace?:string,map:Array|Object):Object
为组件创建计算属性以返回getter的返回值。第一个参数是可选的,可以是一个命名空间字符串
mapActions(namespace?:string,map:Array|Object):Object
创建组件方法分发action。第一个参数是可选的,可以是一个命名空间字符串
mapMutations(namespace?:string,map:Array|Object):Object
创建组件方法提交mutation。第一个参数是可选的,可以是一个命名空间字符串
createNamespacedHelpers(namespace:string):Object
更多关于VUEX方面的相关知识请点击下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。