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