什么是 Vuex?

Vuex 是什么?

Vuex 是一個專為 Vue.js 應用程序開發(fā)的狀態(tài)管理模式兽赁。它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化驻粟。Vuex 也集成到 Vue 的官方調試工具devtools extension友扰,提供了諸如零配置的 time-travel 調試、狀態(tài)快照導入導出等高級調試功能赚爵。

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

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

new Vue({??

// state??

data () {? ??

return {? ? ??

count: 0? ??

}? },?

?// view??

template:{

{{ count }}

},??

// actions??

methods: {? ? increment () {? ? ? this.count++? ? }? }})

這個狀態(tài)自管理應用包含以下幾個部分:

state,驅動應用的數(shù)據(jù)源冀膝;

view唁奢,以聲明方式將state映射到視圖;

actions窝剖,響應在view上的用戶輸入導致的狀態(tài)變化麻掸。

以下是一個表示“單向數(shù)據(jù)流”理念的極簡示意:

但是,當我們的應用遇到多個組件共享狀態(tài)時赐纱,單向數(shù)據(jù)流的簡潔性很容易被破壞:

多個視圖依賴于同一狀態(tài)脊奋。

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

對于問題一千所,傳參的方法對于多層嵌套的組件將會非常繁瑣狂魔,并且對于兄弟組件間的狀態(tài)傳遞無能為力。對于問題二淫痰,我們經(jīng)常會采用父子組件直接引用或者通過事件來變更和同步狀態(tài)的多份拷貝最楷。以上的這些模式非常脆弱,通常會導致無法維護的代碼待错。

因此籽孙,我們?yōu)槭裁床话呀M件的共享狀態(tài)抽取出來,以一個全局單例模式管理呢火俄?在這種模式下犯建,我們的組件樹構成了一個巨大的“視圖”,不管在樹的哪個位置瓜客,任何組件都能獲取狀態(tài)或者觸發(fā)行為适瓦!

另外,通過定義和隔離狀態(tài)管理中的各種概念并強制遵守一定的規(guī)則谱仪,我們的代碼將會變得更結構化且易維護玻熙。

這就是 Vuex 背后的基本思想,借鑒了Flux疯攒、Redux嗦随、和The Elm Architecture。與其他模式不同的是敬尺,Vuex 是專門為 Vue.js 設計的狀態(tài)管理庫枚尼,以利用 Vue.js 的細粒度數(shù)據(jù)響應機制來進行高效的狀態(tài)更新贴浙。

什么情況下我應該使用 Vuex?

雖然 Vuex 可以幫助我們管理共享狀態(tài)署恍,但也附帶了更多的概念和框架崎溃。這需要對短期和長期效益進行權衡。

如果您不打算開發(fā)大型單頁應用锭汛,使用 Vuex 可能是繁瑣冗余的笨奠。確實是如此——如果您的應用夠簡單袭蝗,您最好不要使用 Vuex唤殴。一個簡單的global event bus就足夠您所需了。但是到腥,如果您需要構建是一個中大型單頁應用朵逝,您很可能會考慮如何更好地在組件外部管理狀態(tài),Vuex 將會成為自然而然的選擇乡范。引用 Redux 的作者 Dan Abramov 的話說就是:

Flux 架構就像眼鏡:您自會知道什么時候需要它配名。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晋辆,隨后出現(xiàn)的幾起案子渠脉,更是在濱河造成了極大的恐慌,老刑警劉巖瓶佳,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芋膘,死亡現(xiàn)場離奇詭異,居然都是意外死亡霸饲,警方通過查閱死者的電腦和手機为朋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厚脉,“玉大人习寸,你說我怎么就攤上這事∩倒ぃ” “怎么了霞溪?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長中捆。 經(jīng)常有香客問我鸯匹,道長,這世上最難降的妖魔是什么轨香? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任忽你,我火速辦了婚禮,結果婚禮上臂容,老公的妹妹穿的比我還像新娘科雳。我一直安慰自己根蟹,他們只是感情好,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布糟秘。 她就那樣靜靜地躺著简逮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尿赚。 梳的紋絲不亂的頭發(fā)上散庶,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音凌净,去河邊找鬼悲龟。 笑死,一個胖子當著我的面吹牛冰寻,可吹牛的內容都是我干的须教。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼斩芭,長吁一口氣:“原來是場噩夢啊……” “哼轻腺!你這毒婦竟也來了?” 一聲冷哼從身側響起划乖,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤贬养,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后琴庵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體误算,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年细卧,在試婚紗的時候發(fā)現(xiàn)自己被綠了尉桩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡贪庙,死狀恐怖蜘犁,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情止邮,我是刑警寧澤这橙,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站导披,受9級特大地震影響屈扎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜撩匕,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一鹰晨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦模蜡、人聲如沸漠趁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闯传。三九已至,卻和暖如春卤妒,著一層夾襖步出監(jiān)牢的瞬間甥绿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工则披, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留共缕,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓收叶,卻偏偏與公主長得像骄呼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子判没,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內容