React组件渲染和更新的过程

一、回顾Vue组件渲染和更新的过程

二、回顾JSX本质和vdom

三、组件渲染和更新

1、组件渲染过程

  • props state (组件有了props state)
  • render()生成vnode
  • patch(elem, vnode)

2、组件更新过程

  • setState(newState) --> dirtyComponents (可能有子组件)
  • render()生成newVnode
  • patch(vnode, newVnode)

React的patch可以被拆分为2个阶段

1、reconciliation阶段-------执行diff算法, 纯JS计算

2、commit阶段--------将diff结果渲染DOM

四、fiber优化性能

可能会有性能问题

js是单线程,且和DOM渲染公用一个线程

当组件足够复杂,组件更新时计算和渲染都压力大

同时再有DOM操作需求(动画、鼠标拖拽等),将卡顿

fiber:

将reconciliation阶段进行任务拆分(commit无法拆分,dom渲染无法拆分)

DOM需要渲染时暂停,空闲时恢复
window.requestIdlecallback

(是React内部机制,开发者体会不到)

相关推荐
MartinYeung51 小时前
[论文学习]WASP:面向提示注入攻击的Web代理安全性基准测试
前端·网络·学习
lemon_sjdk1 小时前
从 ServletRequest 到 Spring 抽象:Web 请求的底层基石与演化
java·前端·spring
程序员黑豆1 小时前
鸿蒙应用开发之状态变化通知:@Watch 装饰器详解与实战
前端·harmonyos
swipe1 小时前
13|(前端转全栈)支付成功不等于结束:回调、幂等、超时关单和状态竞争
前端·后端·面试
swipe1 小时前
12|(前端转全栈)点击提交订单后,后端如何用事务守住价格、库存和订单?
前端·后端·面试
半夜里咳嗽的狼1 小时前
用 React 19.2 Activity 保留页面状态前,先弄清 hidden 模式做了什么
react.js
小林ixn1 小时前
React + TypeScript 实战:从“类型体操”到“数据持久化”,一次讲透组件通信与副作用管理
前端·react.js·typescript
何时梦醒1 小时前
React + TypeScript 企业级开发实战:从零搭建到组件架构演进
前端·react.js·全栈
Coffeeee1 小时前
AGP9.0的主要变更项,给Gradle来一次大变样
android·前端·gradle
张元清2 小时前
React useUpdateEffect Hook:跳过首次渲染(2026)
javascript·react.js