vuex是專為vue設(shè)計(jì)的狀態(tài)管理工具,可用于父子組件和非父子組件的全局組件通信。應(yīng)用的狀態(tài)集中放在store中,改變狀態(tài)必須要經(jīng)過(guò)commit,同步改變狀態(tài)是提交mutations,異步是先通過(guò)actions再通過(guò)mutations。
一共有5大模塊 - state 存放狀態(tài) - getters 就像計(jì)算屬性一樣,getter 的返回值會(huì)根據(jù)它的依賴被緩存起來(lái),且只有當(dāng)它的依賴值發(fā)生了改變才會(huì)被重新計(jì)算。
可以對(duì)state中的數(shù)據(jù)做一些處理 - mutations 更改 Vuex 的 store 中的狀態(tài)的唯一方法是提交 mutation,通過(guò)store.commit提交到mutations模塊 - actions actions是異步的改變state中狀態(tài)的方法,通過(guò)store.dispatch來(lái)提交到mutations模塊,再通過(guò)提交commit來(lái)更改state中的狀態(tài) - modules Vuex 允許我們將 store 分割成模塊(module)。每個(gè)模塊擁有自己的 state、mutation、action、getter、甚至是嵌套子模塊——從上至下進(jìn)行同樣方式的分割。