Vuex 是一個專為 Vue 開發(fā)的應(yīng)用程序的狀態(tài)管理模式浦旱,它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化九杂。
Vuex采用類似全局對象的形式來管理所有組件的公用數(shù)據(jù)颁湖,如果想要修改這個全局對象的數(shù)據(jù),是可以修改的例隆,但沒那么簡單甥捺,得按照 Vuex 提供的方式來修改,不能自己隨意用自己的方式來修改镀层。
使用 Vuex 的好處
- 1镰禾、Vuex 的狀態(tài)存儲時響應(yīng)式的,當組件使用到了這個 Vuex 的狀態(tài),一旦它改變了吴侦,所有關(guān)聯(lián)的組件都會自動更新相對應(yīng)的數(shù)據(jù)谷饿,這樣開發(fā)者省事很多。
- 2妈倔、你不能直接修改 Vuex 的狀態(tài),如果是個全局對象變量绸贡,要修改很容易盯蝴,但是在 Vuex 中不能這樣做,想修改就得使用 Vuex 提供的唯一途徑:顯示地提交(commint)mutations 來實現(xiàn)修改听怕。這樣做的好處就是方便我們跟蹤每一個狀態(tài)的變化捧挺,在開發(fā)過程中調(diào)試的時候,非常實用尿瞭。
以上兩點是 Vuex 狀態(tài)管理跟使用傳統(tǒng)全局變量的不同之處闽烙,也是 Vuex 的優(yōu)勢所在。那是不是所有使用 Vue 開發(fā)的 SPA 單頁應(yīng)用都適合采用 Vuex 呢声搁?
適用場景
當然也不是黑竞,如果你的應(yīng)用是個小型的應(yīng)用,組件不多疏旨,組件之間的狀態(tài)依賴不多很魂,關(guān)系清晰容易維護,也就是說不同組件之間很少有數(shù)據(jù)之間的關(guān)聯(lián)的話檐涝,那么你大可不必使用 Vuex 來開發(fā)遏匆。
反之,如果你開發(fā)的是較大型的應(yīng)用谁榜,出現(xiàn)多個視圖組件共同依賴一個狀態(tài)幅聘,這個狀態(tài)相當于我們的全局對象數(shù)據(jù),其他組件的改動窃植,會影響到它帝蒿,反之,它的修改也需要更新其他關(guān)聯(lián)的組件撕瞧,那么Vuex就很適用陵叽。比如:商城系統(tǒng),外賣系統(tǒng)等等丛版。