簡單來說,vuex就是一個為vue程序開發(fā)的公共狀態(tài)管理模式垦巴,可以集中式存儲應(yīng)用的所有組件狀態(tài)媳搪,并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化,
通常情況下當(dāng)我們遇到多個組件共享狀態(tài)的時候骤宣,單項數(shù)據(jù)流的簡潔性很容易被破壞秦爆,導(dǎo)致代碼無法維護(hù)
于是,我們將組件的共享狀態(tài)抽取出來憔披,以一個全局單例的模式管理等限,這個模式我們就叫做vuex
vuex和單純的全局對象的區(qū)別如下:
- Vuex 的狀態(tài)存儲是響應(yīng)式的。當(dāng) Vue 組件從 store 中讀取狀態(tài)的時候,若 store 中的狀態(tài)發(fā)生變化精刷,那么相應(yīng)的組件也會相應(yīng)地得到高效更新。
- 你不能直接改變 store 中的狀態(tài)蔗候。改變 store 中的狀態(tài)的唯一途徑就是顯式地提交 (commit) mutation怒允。這樣使得我們可以方便地跟蹤每一個狀態(tài)的變化,devtools可以看到每一次的狀態(tài)改變锈遥。
在使用vuex之前纫事,我們首先要調(diào)用 Vue.use(Vuex),這樣子組件就可以通過this.$store方法問vuex
const Counter = { template: <div>{{ count }}</div>
, computed: { count () { return this.$store.state.count } } }
當(dāng)我們用vuex管理公共狀態(tài)的時候所灸,分為同步異步兩種情況
待更