資料狀態管理

資料狀態管理

使用情境

Context API

  • 只考慮偏靜態數據的跨組件層級傳遞和共享,不考慮狀態更新

Context API + useReducer

  • 小中型的狀態管理場景,意味著狀態規模不大,更新狀態的邏輯代碼不復雜
  • 對代碼的可調試性沒有很高的要求
  • 對渲染性能沒有很高的要求

redux + react-redux

  • 中大型的狀態管理場景,意味著狀態規模很大,更新狀態的邏輯代碼比較複雜,存在多人協作
  • 代碼的可調式性有比較高的要求。需要快速地知道四個“什麼”問題(狀態在“什麼時候”,“在什麼地方”,“為什麼”,“發生了什麼樣的”變化)的答案。
  • 需要用到副作用機制增加代碼的可讀性
  • 需要用到中間件來增加應用的可擴展性
  • 需要對用戶操作軌跡進行日誌記錄
  • 考慮使用一個redux store 對接到不同的 UI 層(比如同時對接到react和vue)
  • 在渲染性能上有更高的追求

參考資料

教學影片


Hooks

Hooks

Context

Context

Redux

Redux

MobX

MobX