Render渲染(Update阶段)

  • 同Mount阶段一样,也是有“递”和“归”两个阶段

"递阶段"

  1. 同Mount阶段不同的是,在beginWork办法中会进入 if (current !== null)这一条件分支,外面会对此次构建的Fibre和上次的Fibre节点进行比拟

     if (   oldProps !== newProps ||   hasLegacyContextChanged() ||   (__DEV__ ? workInProgress.type !== current.type : false) ) 
  2. 会给didReceiveUpdate字段赋值,用于断定是否发生变化
  3. 如果Fiber节点前后无变动,则进入bailoutOnAlreadyFinishedWork办法
  4. 若没有满足条件,则进入switch语句,依据不同的case条件,执行不同的操作
  • "递阶段图解"

“归阶段”

  • 后续更新...