vuex是一個(gè)狀態(tài)管理工具
流程:
- 頁面dispatch一個(gè)action,然后觸發(fā)mutations的commit修改狀態(tài),state響應(yīng)到視圖上。
解密actions的形參:

image.png
解密mutations的形參:接收state可以直接進(jìn)行修改state.count = 0
輔助函數(shù)
computed:mapState(['count']) // mapState返回一個(gè)對象如下
computed:{
count (){
return this.$store.state.count
}
}
=============
// 簡寫方式
computed:{
...mapState(['count']), // 可以直接結(jié)構(gòu)出來
...mapGetters(['count']) // vuex中的計(jì)算屬性,mapGetters傳參需要定義兩層函數(shù)
}
=========
// 如果做二次運(yùn)算
computed:{
...mapState({
count(state){
// 形參是state,可以做一些操作
}
})
}
面試小題:
- 是否可以直接修改state狀態(tài):可以,若將vue創(chuàng)建 store 的時(shí)候傳入 strict: true, 開啟嚴(yán)格模式,那么任何修改state的操作,只要不經(jīng)過mutation的函數(shù),vue就會(huì) throw error : [vuex] Do not mutate vuex store state outside mutation handlers。在vuex中也是無法保存記錄的
- mutation 中是否可以做異步操作:可以,但是vuex中只記錄mutation的同步操作,異步無法記錄到所以建議把異步放到action中