在所有子代都更新之后,componentDidUpdate是否运行?
我想知道React组件的生命周期方法componentDidUpdate
是在所有子render
方法完成之后还是在render
调用该组件的方法之后立即执行的。
由于reconciler递归地调用render
method来更新视图,因此我有一种预感,componentDidUpdate
在重新渲染组件的所有子代之后,该预感就会执行,但是文档中没有足够的信息。什么时候确切componentDidUpdate
叫?
回答:
该componentDidUpdate
方法render
在组件的方法完成执行后调用。这意味着将在所有儿童render
方法均完成后调用该方法。您链接的文档中暗含了以下内容:
,可借此机会在DOM上进行操作
该组件仅在渲染后才更新,因此文档暗示它是在所有子级(因此父级)完成了重新渲染之后调用的(尽管有点不清楚)。只有在DOM完成更新,子级以及所有操作后,您才能真正对DOM进行操作。
例如,假设我们有两个组件,A
并且B
和B
渲染了一个A
组件。componentDidUpdate
对于B
只会被调用一次B
的render
结束。在render
中B
后会完成A
的render
调用成功,因为孩子们第一次呈现,由于父母是一部分。这意味着您的问题的答案是:componentDidUpdate
在所有孩子的render
子句都完成之后执行。
以上是 在所有子代都更新之后,componentDidUpdate是否运行? 的全部内容, 来源链接: utcz.com/qa/409726.html