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 内部执行异步操作
    
上一篇:[Unity网络]Http通信


下一篇:滑动验证码