Mobx與Redux區別


Mobx的實現思想和Vue幾乎一樣,所以其優點跟Vue也差不多:通過監聽數據(對象、數組)的屬性變化,可以通過直接在數據上更改就能觸發UI的渲染,從而做到MVVM、響應式、上手成本低、開發效率高,在數據管理上需要再詳細闡述下其區別。

Redux是建議全局唯一Store的,多個Reducers也會在傳遞給react-redux之前被合並成一個root reducer,任何數據的更改(通過Reducer)都會通過這一個store來觸發整個UI樹的重新渲染,如果不做任何的性能優化(pureRender等),就算VD(Virtual Dom)有了再高的效率提升,當頁面數據量、DOM數量大了,性能消耗也是非常大的。另外一點,Redux實現的對數據的管理是pull方式的,就是說其只能等待應用派發某個行為(Action),然后重新觸發UI的渲染,而做不到對行為的可預期;Mobx則不一樣,他是基於監聽數據的屬性變化來實現的,而且是多store的,對於任何的數據變更都是第一時間知道的,所以其實現方式是基於push的監聽訂閱模式而實現,這樣,他就可以做到對數據的可預測以及細粒度的控制,甚至可以通過修改React組件生命周期的方式來減少性能的消耗,而無需使用者對這些細節關心。當然這一切肯定是有了mobx對組件做observe操作才能實現的,所以也就有了observer用的越多,應用性能越高的說法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM