[前端] Vuex、Flux、Redux、MobX框架的狀態管理

Vuex、Flux、Redux、Redux-saga、Dva、MobX
https://juejin.im/post/5c18de8ef265da616413f332

Redux 資料流程流動很自然,可以充分利用時間回溯的特徵,增強業務的可預測性;MobX 沒有那麼自然的資料流程動,也沒有時間回溯的能力,但是 View 更新很精確,細微性控制很細。
Redux 通過引入一些中介軟體來處理副作用;MobX  沒有中介軟體,副作用的處理比較自由,比如依靠 autorunAsync 之類的方法。
Redux 的樣板代碼更多,看起來就像是我們要做頓飯,需要先買個調料盒裝調料,再買個架子放刀叉。。。做一大堆準備工作,然後才開始炒菜;而 MobX 基本沒啥多餘代碼,直接硬來,拿著炊具調料就開幹,搞出來為止。

但其實 Redux 和 MobX 並沒有孰優孰劣,Redux 比 Mobx 更多的樣板代碼,是因為特定的設計約束。如果項目比較小的話,使用 MobX 會比較靈活,但是大型項目,像 MobX 這樣沒有約束,沒有最佳實踐的方式,會造成代碼很難維護,各有利弊。一般來說,小項目建議 MobX 就夠了,大項目還是用 Redux 比較合適。


#Vuex, Flux, Redux, Redux-saga, Dva, MobX, 狀態管理

留言