Mutation 和 Action 的差异
作者:互联网
Mutation 和 Action 的差异
Mutation
-
vuex在使用状态管理的时候 只能使用this.$store.commit来提交mutation对store中的状态进行修改
-
vuex 中每个mutation都有一个字符串的事件类型type 和 一个回调函数handler 这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数
-
存在限制性: 必须是同步函数
但是如果加入了异步,会有什么影响呢?
可以正常使用,但是我们在日常的开发中debug的时候,我们需要查看devtool中的mutation日志,mutation走一步,devtool记录一步,加入异步之后会导致记录失败,devtool不知道在哪里调用,什么时候调用
Action
- Action 提交的是 mutation,而不是直接变更状态 (非状态!!!)
- Action 可以包含任意异步操作。
- 使用this.$store.dispatch来提交
我们直接分发 mutation 岂不更方便?实际上并非如此,还记得 mutation 必须同步执行这个限制么?Action 就不受约束!我们可以在 action 内部执行异步操作
标签:异步,差异,devtool,Mutation,Action,store,mutation 来源: https://www.cnblogs.com/JsonPig/p/15637780.html