在所有子代都更新之后,componentDidUpdate是否运行?

我想知道React组件的生命周期方法componentDidUpdate是在所有子render方法完成之后还是在render调用该组件的方法之后立即执行的。

由于reconciler递归地调用rendermethod来更新视图,因此我有一种预感,componentDidUpdate在重新渲染组件的所有子代之后,该预感就会执行,但是文档中没有足够的信息。什么时候确切componentDidUpdate叫?

回答:

componentDidUpdate方法render在组件的方法完成执行后调用。这意味着将在所有儿童render方法均完成后调用该方法。您链接的文档中暗含了以下内容:

,可借此机会在DOM上进行操作

该组件仅在渲染后才更新,因此文档暗示它是在所有子级(因此父级)完成了重新渲染之后调用的(尽管有点不清楚)。只有在DOM完成更新,子级以及所有操作后,您才能真正对DOM进行操作。

例如,假设我们有两个组件,A并且BB渲染了一个A组件。componentDidUpdate对于B只会被调用一次Brender结束。在renderB后会完成Arender调用成功,因为孩子们第一次呈现,由于父母是一部分。这意味着您的问题的答案是:componentDidUpdate在所有孩子的render子句都完成之后执行。

以上是 在所有子代都更新之后,componentDidUpdate是否运行? 的全部内容, 来源链接: utcz.com/qa/409726.html

回到顶部