@
Chuckle #32 如果打算用 Context 传递 Observable 状态,不如用 mobx ,因为 rxjs 的 API 过于庞大(各种 operator, subject ),而 mobx 的 API 则要精简很多( observable, aciton, autorun/reaction, computed )。
另外,mobx 还有 babel/swc 的插件
https://github.com/christianalfoni/mobx-react-observer ,可以自动将组件包装成 observer ,代码中会少很多语法噪音。
除此之外,mobx 相比 rxjs 还提供了状态更新 transaction
https://mobx.js.org/api.html#transaction ,这在很多时候也是避免由于重复渲染导致性能劣化的有效方法。
不过,选择用 mobx 这样的基于可变数据结构的状态库,就意味着你需要放弃正宗 React 味儿,会大量地打破 rule of hooks 。