gpt4 book ai didi

javascript - 为什么 componentWillMount 会被 React Fibre 调用多次?

转载 作者:行者123 更新时间:2023-11-29 20:48:38 25 4
gpt4 key购买 nike

现在我已经阅读了多个来源,使用 react Fiber(异步渲染)componentWillMount() 可能会被调用多次。

为什么会这样?

最佳答案

Fiber 旨在支持的一件事是高优先级与低优先级更新。例如,动画是高优先级更新(因为 60fps 动画中的卡顿很容易被注意到),而来自 api 调用的更改将是低优先级(谁会注意到你必须等待的额外一百毫秒)无论如何第二?)。

因此,一个简单的示例,仅对 componentWillMount 进行一次标准调用,如下所示:我们执行低优先级更新,协调器开始在组件树中工作,对它们调用 componentWillMount,并进行其他协调工作。由于时间不够,它会暂停让事件循环恢复。没有高优先级的东西,所以在下一个空闲回调时,它会从它停止的地方开始,完成协调并提交更新。没有额外的 componentWillMounts。

下一个例子:低优先级更新开始,和之前一样,协调器通过调用 componentWillMount 的树工作。和以前一样,它暂停执行,但这次有一个高优先级的更新。所以当协调恢复时,React 将注意力转移到高优先级的更新上。它协调该更新,并提交它。现在可以自由地恢复低优先级更新,但它已经完成的工作需要丢弃,因为高优先级更新可能已经做出影响低优先级更新计算的更改。由于它必须重新开始,因此需要再次调用 componentWillUpdate。

关于javascript - 为什么 componentWillMount 会被 React Fibre 调用多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53107319/

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