关于componentDidUpdate中使用setState 的问题

来源:7-7 commitWork删除节点的操作过程

董曼巴

2019-12-14

大家好,请教一个问题。
componentDidUpdatecommit 的第三个循环内执行的,如果在componentDidUpdate中执行setState(不考虑无限循环的问题)

请问:componentDidUpdate里产生的更新是在本次commit流程中嵌套了一次渲染提交流程吗?

写回答

1回答

董曼巴

提问者

2019-12-16

花了一些时间,终于理清楚了:

整个 performWorkOnRoot 期间,isRendering都是 true ,调度流程 requestWork 遇到 isRendering: true 会被终止。所有生命周期里产生的更新符合条件的话,会触发 performWork 的 while 循环的条件,继续执行下一轮

(理解有误的地方,还请各位指正一下)


0
0

React源码深度解析 高级前端工程师必备技能

掌握React源码,让你的开发水平没有上限,更不惧前端未来的到来

1749 学习 · 336 问题

查看课程