资料状态管理

资料状态管理

使用情境

Context API

  • 只考虑偏静态数据的跨组件层级传递和共享,不考虑状态更新

Context API + useReducer

  • 小中型的状态管理场景,意味着状态规模不大,更新状态的逻辑代码不復杂
  • 对代码的可调试性没有很高的要求
  • 对渲染性能没有很高的要求

redux + react-redux

  • 中大型的状态管理场景,意味着状态规模很大,更新状态的逻辑代码比较複杂,存在多人协作
  • 代码的可调式性有比较高的要求。需要快速地知道四个“什麽”问题(状态在“什麽时候”,“在什麽地方”,“为什麽”,“发生了什麽样的”变化)的答案。
  • 需要用到副作用机制增加代码的可读性
  • 需要用到中间件来增加应用的可扩展性
  • 需要对用户操作轨迹进行日誌记录
  • 考虑使用一个redux store 对接到不同的 UI 层(比如同时对接到react和vue)
  • 在渲染性能上有更高的追求

参考资料

教学影片


Hooks

Hooks

Context

Context

Redux

Redux

MobX

MobX