乐趣区

关于es6:React源码学习Part4Render渲染Update阶段

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 条件,执行不同的操作
  • “ 递阶段图解 ”

“归阶段”

  • 后续更新 …
退出移动版