edux與flux都是react框架的應(yīng)用數(shù)據(jù)流框架亭螟。vuex是vue的核心方法小渊。
redux是一個(gè)應(yīng)用數(shù)據(jù)流框架起暮,主要是解決了組件間狀態(tài)共享的問(wèn)題铺罢,原理是集中式管理艇挨,主要有三個(gè)核心方法,action韭赘,store缩滨,reducer,工作流程是view調(diào)用store的dispatch接收action傳入store泉瞻,reducer進(jìn)行state操作脉漏,view通過(guò)store提供的getState獲取最新的數(shù)據(jù)。
flux也是用來(lái)進(jìn)行數(shù)據(jù)操作的袖牙,有四個(gè)組成部分action侧巨,dispatch,view鞭达,store司忱,工作流程是view發(fā)出一個(gè)action皇忿,派發(fā)器接收action,讓store進(jìn)行數(shù)據(jù)更新坦仍,更新完成以后store發(fā)出change鳍烁,view接受change更新視圖。
Redux和Flux很像繁扎。主要區(qū)別在于Flux有多個(gè)可以改變應(yīng)用狀態(tài)的store幔荒,在Flux中dispatcher被用來(lái)傳遞數(shù)據(jù)到注冊(cè)的回調(diào)事件,但是在redux中只能定義一個(gè)可更新狀態(tài)的store锻离,redux把store和Dispatcher合并,結(jié)構(gòu)更加簡(jiǎn)單清晰铺峭,新增state,對(duì)狀態(tài)的管理更加明確,通過(guò)redux汽纠,流程更加規(guī)范了,減少手動(dòng)編碼量傀履,提高了編碼效率虱朵,同時(shí)缺點(diǎn)是當(dāng)數(shù)據(jù)更新時(shí)有時(shí)候組件不需要,但是也要重新繪制钓账,有些影響效率碴犬。一般情況下,我們?cè)跇?gòu)建多交互梆暮,多數(shù)據(jù)流的復(fù)雜項(xiàng)目應(yīng)用時(shí)才會(huì)使用它們服协。
Vuex 是一個(gè)專為 Vue.js 設(shè)計(jì)的狀態(tài)管理模式,vuex解決了組件之間同一狀態(tài)的共享問(wèn)題啦粹。當(dāng)我們的應(yīng)用遇到多個(gè)組件共享狀態(tài)時(shí)偿荷,會(huì)需要多個(gè)組件依賴于同一狀態(tài),這時(shí)候使用vuex就可以很好的解決唠椭。