const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } }, actions: { increment (context) { context.commit('increment') } } })
一、流程順序異步
「相應視圖—>修改State」拆分紅兩部分,視圖觸發Action,Action再觸發Mutation。spa
二、角色定位code
基於流程順序,兩者扮演不一樣的角色。blog
Mutation:專一於修改State,理論上是修改State的惟一途徑。rem
Action:業務代碼、異步請求。同步
三、限制it
角色不一樣,兩者有不一樣的限制。io
Mutation:必須同步執行。class
Action:能夠異步,但不能直接操做State。
請求