type
status
date
slug
summary
tags
category
icon
password
函数组件渲染流程图
在
React
中,函数组件的渲染流程相对简单,具体步骤如下:初始化
react
调用函数式组件,就像调用函数那样,只不过参数为 Props
当遇到
hooks
时:✨ useState
标记
State
✨ useEffect
收集所有
effect
最后返回
vDom
由
react-dom
库来解析vDom
,绘制UI
绘制完成后,执行一次所有收集到的effect,并收集 cleanup 函数
严格模式将执行2次(setup → cleanup → setup)
Effect
在组件挂载时运行了两次
官网是这样说的
Effect 在组件挂载时运行了两次
在开发模式的严格模式下,为了提高程序的稳定性,从而调用两次setup来放大错误
更新
当
props
已经更新时或者标记的state
进行更新时react
会执行 cleanup
当遇到
hooks
时:✨ useState
更新
State
,将返回新的✨ useEffect
收集所有的依赖的
effect
最后返回
vDom
由
react-dom
库来对比两次的vDom
,更新UI
更新完成后,执行
effect
,并收集 cleanup
函数卸载
执行所有
cleanup
特殊的更新 (key)
当父组件对子组件定义了
key
时,并且当key
更新时组件将被卸载并重新初始化
这也是重要的特性,可以借助改变key来进行重新加载组件
可以通过以下来查看组件执行顺序