代码示例:
this.$store.commit('aMutation', payload);
this.$store.dispatch('aAction', payload);
参数说明:
- aMutation : 一个mutation方法名
- payload : 有效载荷 , 传递数据 , payload是一个对象结构
- aAction : 一个action方法名
- true : 允许在命名空间模块里分发 根root的 action
两者都可以使用的提交方式:
// 以payload有效载荷形式
store.commit('aMutation',{
value: 10 //这是额外的数据
})
// 或者对象方式
store.commit({
type: 'aMutation',
value: 10 //这是额外的数据
})
主要区别:
- dispatch:提交到 actions,action方法里可以提交mutation方法,可以包含异步操作,如向后台发送网络请求登录
- commit:提交到 mutations,mutation方法只能是同步操作,可用于登录成功后读取用户信息保存到cookie