gpt4 book ai didi

javascript - react .js : batching setState to ensure only one DOM layout/paint

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:40 24 4
gpt4 key购买 nike

我有一个正在执行 setState 的 onWheel 处理程序,它导致的布局多于绘制:

wheel layout wheel layout paint

...通过将事件值更改批处理到一个 setState 来避免这种情况的任何好的模式?

(我认为这个内置有一些魔力。)

最佳答案

就我而言,这似乎可行。在 onWheel 处理程序中缓存更改,然后安排 requestAnimationFrame 进行计算并实际 setState

...

zoomFactor: 0,
zoomX: 0,
zoomY: 0,
onWheel: function (event) {
this.zoomFactor += event.deltaY;
this.zoomX = event.nativeEvent.pageX;
this.zoomY = event.nativeEvent.pageY;
requestAnimationFrame(this.scheduleZoom);
},
scheduleZoom: function () {

var scale = ...; // Calc new scale, x, and y
this.zoomFactor = 0;

this.setState({
scale: scale,
x: x,
y: y
});
},

...

有关批处理所有更改的较低级别选项,请参阅 https://github.com/petehunt/react-raf-batching

关于javascript - react .js : batching setState to ensure only one DOM layout/paint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com