其他分享
首页 > 其他分享> > Mutation 和 Action 的差异

Mutation 和 Action 的差异

作者:互联网

Mutation 和 Action 的差异

Mutation

  1. vuex在使用状态管理的时候 只能使用this.$store.commit来提交mutation对store中的状态进行修改

  2. vuex 中每个mutation都有一个字符串的事件类型type 和 一个回调函数handler 这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数

  3. 存在限制性: 必须是同步函数

    但是如果加入了异步,会有什么影响呢?
       可以正常使用,但是我们在日常的开发中debug的时候,我们需要查看devtool中的mutation日志,mutation走一步,devtool记录一步,加入异步之后会导致记录失败,devtool不知道在哪里调用,什么时候调用

Action

  1. Action 提交的是 mutation,而不是直接变更状态 (非状态!!!)
  2. Action 可以包含任意异步操作。
  3. 使用this.$store.dispatch来提交
    我们直接分发 mutation 岂不更方便?实际上并非如此,还记得 mutation 必须同步执行这个限制么?Action 就不受约束!我们可以在 action 内部执行异步操作
    

标签:异步,差异,devtool,Mutation,Action,store,mutation
来源: https://www.cnblogs.com/JsonPig/p/15637780.html