異步處理需要在 倉庫的actions中定義
Action 類似于 mutation,不同在于:
· Action 提交的是 mutation,而不是直接變更狀態(tài)。
· Action 可以包含任意異步操作。
我們可以在action中發(fā)送異步請求,成功后觸發(fā)mutation 將結(jié)果傳入,在mutation賦值給state
const store = new Vuex.Store({
state: {
items: [] // 定義一個公共的購物車數(shù)據(jù)
},
mutations: {
// 定義mutation來修改state
INIT_ITEMS(state, items){
state.items = items
}
},
actions: {
// action可以發(fā)送異步請求,得到數(shù)據(jù)后commit mutation將請求結(jié)果傳入
FETCH_ITEMS({commit}, params = {}){
// 調(diào)用封裝好的 接口函數(shù)
fetchItem(params).then(res => {
if(res.data.code === 200) {
commit('INIT_ITEMS', res.data.data)
}
})
}
}
})