1. state中用于存放全局初始状态,所有的数据都放在这里
定义的方式
state:{ num:66 }
用法:
computed:{
...mapState({
title:state //相当于return state.num title是自己取得名字
})
}
用法:
{{title}}
2. gettters:用于存放加工处理后的数据
getters:{
num2:(state)=>{
return state.num*2+1
}
}
用法:{{$store.getters.num2}}
注意:这样的取出来的数据不建议进行计算,因为在vuex插件中追踪不到数据的变化,不利于我们开发
3. mutation:修改state中的值,可进行方法的定义,但是只能放同步的操作 可直接修改state中的数据
mutation:{
add(state,payload){
console.log(state) //得到在state中定义的数据 num:66
console.log(payload) //使用这个方法时传过来的数据 age:18
}
}
用法:this.$store.commit(‘add‘,{age:18})
4. actions:与mutation的作用一样,但可进行异步的操作---如定时器,请求接口等 不能修改state中的数据
actions:{
add2(context,payload){
//context--上下文环境 payload--调用add2这个方法时传递的参数
context.commit(‘add‘,payload){
//add--在mutation中定义的方法名 payload---调用add这个方法时传递的参数
}
}
}
用法:this.$store.dispatch(‘add2‘,{age:13})
原文:https://www.cnblogs.com/wldy/p/14288703.html