跟著文檔學(xué)Vuex(一):什么是Vuex

Vuex是什么?

Vuex是一個專門為Vue.js應(yīng)用程序開發(fā)的“狀態(tài)管理模式”。它采用集中儲存管理應(yīng)用的所有組件的狀態(tài),并加以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式變化。

什么是“狀態(tài)管理模式”?

讓我們從一個簡單的Vue計數(shù)應(yīng)用開始分析:

newVue({// statedata(){return{count:0}},// viewtemplate:`<div>{{count}}</div>`,// actionsmethods:{increment(){this.count++}}})

單向數(shù)據(jù)流

通過代碼和圖我們可以看到,data里是驅(qū)動應(yīng)用的數(shù)據(jù)源(state),template是反應(yīng)數(shù)據(jù)的視圖窗口(View),method里的increment,響應(yīng)view上用戶的輸入操作(Actions)

這三兄弟在一個組件內(nèi)運行沒問題,但是如果現(xiàn)在State,View,Actions同時出現(xiàn)在多個組件里,那樣狀態(tài)就會很混亂

多個視圖(view)依賴同一個狀態(tài)(state)。

來自不同的視圖的行為(actions)需要改變同一個狀態(tài)(state)。

對于問題一,傳參的方法對于多層嵌套將會非常麻煩,并且兄弟之間的組件傳遞無能為力。

對于問題二,我們經(jīng)常會采用父子組件直接引用或者通過事件變更和同步狀態(tài)的多份拷貝。以上的模式都非常脆弱和難以維護(hù)。

因此,Vuex把組件的共享狀態(tài)抽取出來,以一個全局單例模式管理。組建樹構(gòu)成了一個巨大的‘視圖’,不管在樹的哪個位置,任何組件都能獲取狀態(tài)或者出發(fā)行為。利用Vue.js的細(xì)粒度數(shù)據(jù)響應(yīng)機制進(jìn)行高效的狀態(tài)更新。

什么情況下使用Vuex?

看完上面的介紹,你應(yīng)該明白,Vuex的出現(xiàn),就是一個統(tǒng)一的狀態(tài)管理工具,如果你在項目中并沒有太多的共享狀態(tài),那你可以不用,當(dāng)你被共享的狀態(tài)搞得焦頭爛額時,那你一定要馬上使用它。引用Redux的作者的話就是

Flux就像是眼睛:你自然會知道是什么時候需要它。

引用

https://vuex.vuejs.orgVuex官方文檔

作者:我王某不需要昵稱

鏈接:http://www.itdecent.cn/p/fb158a1758e0

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容