Action:
actions函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。
第一点:流程顺序不同
“相应视图—>修改State”拆分成两部分,视图触发Action,Action再触发Mutation。
第二点:基于流程顺序,二者扮演不同的角色。
Mutation:专注于修改State,理论上是修改State的唯一途径。
Action:业务代码、异步请求。
第三点:基于角色不同,二者也有不同的限制。
Mutation必须同步执行;
Action可以异步,但不能直接操作State。而且可以通过 action 来提交 mutations