在componentDidMount里监听页面滚动,当页面scrolltop大于该区域scrolltop时,setState给区域悬浮style,否则setState去除悬浮style,每滚一次都setState一次,有什么好的解决方法吗?因为涉及state比较多,也不好针对这个写shouldComponentUpdate。一般这种情况会有什么好的方案?
3 回答
哔哔one
TA贡献1854条经验 获得超8个赞
感觉你的疑问是每次做setState会触发React重新做DOM DIFF运算,你觉得可能影响UI响应效率?
如果是这样,几个优化点:
不要监听onScroll,两个替代方案:requestAnimationFrame/setTimeout
每次setState之前做一次脏检查,临界点更替的情况 既 !== 的情况再setState
添加回答
举报
0/150
提交
取消