首页 > 解决方案 > 与观察者 hoc 相比,为什么 useObserver 钩子不会重新渲染两次?

问题描述

我正在阅读 mobx-react-lite 的文档,并对观察者 hoc 和 useObserver 钩子之间的区别感到困惑。根据文档,observer hoc 将触发重新渲染两次,而 useObserver 不会:

关于这一点的一件好事是,如果任何钩子由于某种原因更改了可观察对象,那么组件将不会不必要地重新渲染两次。(示例待定)

我对 mobx-react-lite 不太熟悉,但对导致这种差异的原因很感兴趣。这是文档:https ://mobx-react.js.org/observer-hook

标签: mobxmobx-reactmobx-react-lite

解决方案


useObserver钩子只知道功能组件中引用的可观察对象,而观察者 HOC 对任何可观察对象都是反应性的props。HOC 实际上只是将observer整个组件包装在useObserver.


推荐阅读