關於Flux,Vuex,Redux的思考

%就是我發表於2018-08-10


Flux是一種前端狀態管理架構思想,專門解決軟體的結構問題。
基於Flux的設計思想,出現了一批前端狀態管理框架。
他們給出了一些庫用於實現Flux的思想,並在Flux的基礎上做了一些改進。
在這些框架裡,當前最熱門的莫過於Redux和Vuex了。
這裡是我對Flux,Vuex,Redux的一些思考和總結:

Flux

Flux資料流的順序是:

View發起Action->Action傳遞到Dispatcher->Dispatcher將通知Store->Store的狀態改變通知View進行改變

ps:基於Flux架構思想寫的一個小demo

Redux

Redux相對於Flux的改進:

  • 把store和Dispatcher合併,結構更加簡單清晰

  • 新增state角色,代表每個時間點store對應的值,對狀態的管理更加明確

Redux資料流的順序是:

View呼叫store.dispatch發起Action->store接受Action(action傳入reducer函式,reducer函式返回一個新的state)->通知store.subscribe訂閱的重新渲染函式

ps:阮一峰老師的Redux+React小demo

Vuex

Vuex是專門為Vue設計的狀態管理框架,
同樣基於Flux架構,並吸收了Redux的優點

Vuex相對於Redux的不同點有:

  • 改進了Redux中的Action和Reducer函式,以mutations變化函式取代Reducer,
    無需switch,只需在對應的mutation函式裡改變state值即可

  • 由於Vue自動重新渲染的特性,無需訂閱重新渲染函式,只要生成新的State即可

Vuex資料流的順序是:

View呼叫store.commit提交對應的請求到Store中對應的mutation函式->store改變(vue檢測到資料變化自動渲染)


相關文章