【前端面试】React深度学习(下)

render阶段:构建Fiber树

Fiber节点是如何被创建并构建Fiber树的

render阶段的工作可以分为“递”阶段和“归”阶段。
“递”阶段会执行beginWork: 根据传入的Fiber节点创建子Fiber节点,并将这两个Fiber节点连接起来。
当遍历到叶子节点(即没有子组件的组件)时就会进入“归”阶段。
“归”阶段会执行completeWork

beginWork

current:当前组件对应的Fiber节点在上一次更新时的Fiber节点,即workInProgress.alternate
workInProgress:当前组件对应的Fiber节点
renderLanes:优先级相关,在讲解Scheduler时再讲解

通过current === null ?来区分组件是处于mount还是update。

基于此原因,beginWork的工作可以分为两部分:

update时:如果current存在,在满足一定条件时可以复用current节点,这样就能克隆current.child作为workInProgress.child,而不需要新建workInProgre

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值