【发布时间】:2021-05-24 02:52:23
【问题描述】:
当组件的道具未更改时,如何防止组件重新渲染?
Code sandbox link/minimal working example。将光标移到 Canvas 上,可以看到控制台记录了许多 "Canvas re-rendered" 消息。
在顶层,我将const 函数作为处理程序传递给Canvas。 onMouseMoveHandler 更新App 的状态,以便它可以更新Details 组件:
<div className="App">
<Canvas onMouseMoveHandler={onMouseMoveHandler} />
<Details passedProp={getValue} />
</div>
我需要它以便 Canvas 不会重新渲染,因为 HTML canvas 元素内部有用户绘制的线条。我该怎么做?
我原以为使用React.memo 会使它像一个纯组件一样,因此不会重新渲染。
我是 React 的初学者,如果我没有想到正确的代码结构,请告诉我如何解决。
【问题讨论】:
标签: javascript reactjs canvas react-hooks components