Vuex状态管理总结

1、Mutations

mutations 必须是同步函数,为什么?

举个例子:  官方案例

mutations: {
  someMutation (state) {
    api.callAsyncMethod(() => {
      state.count++
    })
  }
}

每一条 mutation 被记录,devtools 都需要捕捉到前一状态和后一状态的快照。然而,在上面的例子中 mutation 中的异步函数中的回调让这不可能完成:
因为当 mutation 触发的时候,回调函数还没有被调用,devtools 不知道什么时候回调函数实际上被调用——实质上任何在回调函数中进行的状态的改变都是不可追踪的。

this.$store.commit()

this.$store.dispatch('saveUserName', res.data.userName)

2、Actions

vuex为了解决mutations只有同步的问题,提出了actions(异步),专门用来解决mutations只有同步无异步的问题.

原文地址:https://www.cnblogs.com/zjianfei/p/15530047.html