關(guān)于vuex + redux的簡(jiǎn)單對(duì)比和設(shè)計(jì)思想

Redux

  • 整個(gè)應(yīng)用只有一個(gè)Store:?jiǎn)我粩?shù)據(jù)源

  • Store.state不能直接修改(只讀)补箍,必須調(diào)用dispatch(action) => store.reducer => return newState

  • Action是一個(gè)對(duì)象,且必須具有type屬性啸蜜,用來(lái)告訴reducer執(zhí)行哪個(gè)操作

  • reducer必須是一個(gè)純函數(shù)坑雅,以此來(lái)保證相同的輸入必定是相同的輸出,確保返回的newState可預(yù)測(cè)可控

  • 大型應(yīng)用中可以有多個(gè)reducer衬横,通過(guò)combineReducer 來(lái)整合成一個(gè)根reducer

  • Redux的大概流程:

    // view中發(fā)出 Action
    store.dispatch(action)
    // store 自動(dòng)調(diào)用reducer裹粤,傳入當(dāng)前state和action
    let newState = xxxReducer(currentState, action)
    // state發(fā)生變化,store自動(dòng)調(diào)用監(jiān)聽(tīng)函數(shù)
    store.subsrcibe(listener)
    // listener可以通過(guò) store.getState() 得到當(dāng)前狀態(tài)蜂林。如果使用的是 React遥诉,這時(shí)可以觸發(fā)重新渲染 View
    function listerner() {
      let newState = store.getState();
      component.setState(newState);   
    }
    

Vuex

  • 由 State + Muatations(commit) + Actions(dispatch) 組成
  • 全局只有一個(gè)Store實(shí)例(單一數(shù)據(jù)源)
  • Mutations必須是同步事務(wù),Why?:不同步修改的話噪叙,會(huì)很難調(diào)試矮锈,不知道改變什么時(shí)候發(fā)生,也很難確定先后順序睁蕾,A苞笨、B兩個(gè) mutation,調(diào)用順序可能是 A -> B子眶,但是最終改變 State 的結(jié)果可能是 B -> A
  • Actions 負(fù)責(zé)處理異步事務(wù)瀑凝,然后在異步回調(diào)中觸發(fā)一個(gè)或多個(gè)mutations,當(dāng)然臭杰,也可以在業(yè)務(wù)代碼中處理異步事務(wù)粤咪,然后在回調(diào)中同樣操作
  • 模塊化通過(guò)module方式來(lái)處理,這個(gè)跟Redux-combineReducer類(lèi)似渴杆,在應(yīng)用中可以通過(guò)namespaceHelper來(lái)簡(jiǎn)化使用

對(duì)比Redux

Redux: 
// view——>actions——>reducer——>state變化——>view變化(同步異步一樣)

Vuex: 
// view——>commit——>mutations——>state變化——>view變化(同步操作) 
// view——>dispatch——>actions——>mutations——>state變化——>view變化(異步操作)

總的來(lái)說(shuō)都是讓 View 通過(guò)某種方式觸發(fā) Store 的事件(mutation)或方法(reducer)射窒,Store 的事件或方法對(duì) State 進(jìn)行修改(state.xxx = xxx)或返回一個(gè)新的 State(return newState),State 改變之后将塑,View 發(fā)生響應(yīng)式改變(setState vs 數(shù)據(jù)劫持響應(yīng)式)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝌麸,一起剝皮案震驚了整個(gè)濱河市点寥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌来吩,老刑警劉巖敢辩,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔽莱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡戚长,警方通過(guò)查閱死者的電腦和手機(jī)盗冷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)同廉,“玉大人仪糖,你說(shuō)我怎么就攤上這事∑刃ぃ” “怎么了锅劝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蟆湖。 經(jīng)常有香客問(wèn)我故爵,道長(zhǎng),這世上最難降的妖魔是什么隅津? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任诬垂,我火速辦了婚禮,結(jié)果婚禮上伦仍,老公的妹妹穿的比我還像新娘结窘。我一直安慰自己,他們只是感情好呢铆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布晦鞋。 她就那樣靜靜地躺著,像睡著了一般棺克。 火紅的嫁衣襯著肌膚如雪悠垛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天娜谊,我揣著相機(jī)與錄音确买,去河邊找鬼。 笑死纱皆,一個(gè)胖子當(dāng)著我的面吹牛湾趾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播派草,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼搀缠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了近迁?” 一聲冷哼從身側(cè)響起艺普,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后歧譬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體岸浑,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年瑰步,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矢洲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缩焦,死狀恐怖读虏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舌界,我是刑警寧澤掘譬,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站呻拌,受9級(jí)特大地震影響葱轩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜藐握,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一靴拱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猾普,春花似錦袜炕、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至溜在,卻和暖如春陌知,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掖肋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工仆葡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人志笼。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓沿盅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親纫溃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腰涧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容