作用:修改vuex中的state,只可以通过mutations修改
- 需要通过commit提交同步方法(1.只提交方法,参考实例1;2.携带参数提交,参考实例2)
- 同步方法中第一个默认参数是state,可以通过state.xx拿取state中已经定义好的数据
state: {
count: 0,
coderyg: {
name: 'coderyg',
age: 25,
height: 1.93
},
info: 'swk'
}
实例1:修改count(只提交方法)
<p>{{ $store.state.count }}</p>
<button @click="addCount">+</button>
<button @click="subCount">-</button>
addCount() {
this.$store.commit('increment');
},
subCount() {
this.$store.commit('decrement');
}
increment(state) {
state.count ++;
},
decrement(state) {
state.count --;
}
实例2.1:携带参数普通方法提交
<p>{{ $store.state.count }}</p>
<button @click="changeNum(+5)">+5</button>
<button @click="changeNum(-5)">-5</button>
changeNum(num) {
this.$store.commit('addNum', num);
}
addNum(state, num) {
state.count += num;
}
实例2.2:携带参数对象方法提交
<p>{{ $store.state.count }}</p>
<button @click="changeNum(+5)">+5</button>
<button @click="changeNum(-5)">-5</button>
changeNum(num) {
this.$store.commit(从这开始{
type: 'addNum',
num
}到这结束是payload);
}
addNum(state, payload) {
state.count += payload.num;
}