什么是React中的“更新”?

时间:2018-11-12 15:02:39

标签: javascript reactjs

React Documentation说:

  

componentDidUpdate()在更新发生后立即被调用

但是我注意到即使没有更新浏览器DOM元素,也会调用componentDidUpdate()

那么, 更新 发生在React文档中是什么意思?

4 个答案:

答案 0 :(得分:3)

“更新”不仅是DOM更新,而且是生命周期的一部分。
当有新的props,状态更新和强制更新

时发生

您可以在此图中看到此部分,摘自DOCS

enter image description here

答案 1 :(得分:1)

componentDidUpdate在调用组件中的渲染函数时被调用。当状态或道具更改时,可能会发生这种情况。调用forceUpdate时也会发生这种情况。

有时,组件更新可能不会触发DOM更新。这是因为React在更新后创建了一个虚拟DOM,并在更新前检查了该虚拟DOM。并且只有存在差异时,DOM才会更新。在您的情况下,可能虽然触发了渲染功能,但虚拟DOM没有任何变化,因此没有DOM更新。

答案 2 :(得分:1)

componentDidUpdate的参数应满足您的查询。 prevPropsprevStatesnapshot是从其他一些挂钩中更新的数据。到那时,您将需要componentDidUpdate来处理更新。

picture应该为您提供有关更新的详细信息:

enter image description here

因此,您可以看到componentDidUpdate()在更新发生后立即被调用。

答案 3 :(得分:1)

componentDidUpdate将在初始渲染后对组件进行任何状态或PROP更改的情况下运行,无论该更改是否影响DOM。