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