🚀 React 函数组件渲染流程

323 阅读1分钟

React中,函数组件的渲染流程相对简单,具体步骤如下:

React 函数组件渲染流程.png

初始化

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来进行重新加载组件

可以通过以下来查看组件执行顺序