我有一个带有鼠标移动事件的div
来改变位置(top
,left
),但是div
有很多子元素。
当子元素的数量少于1000时,效果看起来不错,但当数量超过5000时,效果就变差了。
我可以做些什么来提高移动效果的性能(我需要显示所有的子元素)。
下面是我的示例代码,您可以更改const SPAN_COUNT = 5000
来尝试不同的子元素计数。顺便说一句,如果我用纯HTML编写此代码,性能看起来会更好
https://codesandbox.io/s/cranky-moon-eid68?file=/src/App.js
1条答案
按热度按时间rqqzpn5f1#
如果你正在移动的组件不需要在每次移动时更新(迭代并创建5000个组件),你可以使用React.memo,它将使一个函数组件的行为类似于一个类组件,使用shouldComponentUpdate浅层比较。
这将停止在每次移动方块时重新创建5000个元素,并且仅在span属性更改时重新创建它们(浅比较)。