mobx - 与观察者 hoc 相比,为什么 useObserver 钩子不会重新渲染两次?
问题描述
我正在阅读 mobx-react-lite 的文档,并对观察者 hoc 和 useObserver 钩子之间的区别感到困惑。根据文档,observer hoc 将触发重新渲染两次,而 useObserver 不会:
关于这一点的一件好事是,如果任何钩子由于某种原因更改了可观察对象,那么组件将不会不必要地重新渲染两次。(示例待定)
我对 mobx-react-lite 不太熟悉,但对导致这种差异的原因很感兴趣。这是文档:https ://mobx-react.js.org/observer-hook
解决方案
useObserver
钩子只知道功能组件中引用的可观察对象,而观察者 HOC 对任何可观察对象都是反应性的props
。HOC 实际上只是将observer
整个组件包装在useObserver
.