[vue] vuex的action和mutation的特性是什么?有什么区别?
action: 负责与外界交互, 比如请求数据(好像一般都是)
mutation: 负责: 内部state变更
一个对外, 一个对内
action: 通过执行 commit()来触发mutation的调用, 间接更新state ,
组件中通过$store.dispatch('action名称') 触发action,
可以包含异步代码(定时器, ajax)
mutation是一个对象 包含多个直接更新state的方法(回调函数) ,只能包含同步的代码, 不能写异步代码
Action
store.dispatch() 方法触发,或者通过 mapActions 辅助函数将 vue 组件的 methods 映射成 store.dispatch() 调用Mutation
store.commit() 调用 MutationAction
1.可以包含任意异步操作
2.它提交的是mutation,而不是直接变更状态
Mutation
1.唯一一个可以修改state的途径
2.必须是同步函数
Most helpful comment
Action
store.dispatch()方法触发,或者通过mapActions辅助函数将 vue 组件的 methods 映射成store.dispatch()调用Mutation
store.commit()调用 Mutation