vuex里面的this.$store.dispatch 和 this.$store.commit用法以及区别

发布时间 2023-06-25 11:40:08作者: 以后。h
 

两个方法都是传值给vuex的mutation改变state

dispatch:异步操作,数据提交至 actions ,可用于向后台提交数据

this.$store.dispatch('isLogin', true);

commit:  同步操作,数据提交至 mutations ,可用于登录成功后读取用户信息写到缓存里

this.$store.commit('loginStatus', 1);

注:必须要用commit(‘SET_TOKEN’, tokenV)调用mutations里的方法,才能在store存储成功。

 

 

eg:

dispatch方法的参数

1、第一个参数:actions名称,必填项

2、第二个参数:actions操作的参数,可选项

3、第三个参数:具有多个触发mutations的actions执行器数据,必须为对象格式,可选项

4、第四个参数:触发成功时的回调函数,可选项

5、第五个参数:触发失败时的回调函数,可选项

 

store.dispatch('actionName', {
   parameter1: value1,
   parameter2: value2
}, {
   root: true,
   test: () => console.log('test')
}, 
() => {
   console.log('success')
},
() => {
   console.log('fail')
})