## 修改數據(異步操作)
# 不能直接 修改 state 只能通過 mutations 修改
~~~
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
cont: 0
},
mutations: {
add (state) {
state.cont++
},
addn (state, num: number) {
state.cont += num
},
jian (state, num:number) {
state.cont -= num
}
},
actions: {
addAsync (context) {
// 定時器
setTimeout(() => {
context.commit('add')
}, 1000)
}
},
modules: {}
})
~~~
## 異步修改第一種
~~~
this.$store.dispatch('addAsync',參數)
~~~
# 異步修改第二種
1.
import { mapState, mapActions } from 'vuex'
2.
this.addAsync()
3
...mapActions(['addAsync']),