请简述 React 16 版本中 commit 阶段的三个子阶段分别做了什么事情

1. before mutation阶段 (操作 Dom 前)

`主要调用类组件生命周期函数getSnapshotBeforeUpdate,并且把旧的props和旧的states传递进去

2. mutation阶段 (执行 Dom 操作)

`获取对象的 effects, 根据不同的 effectTag 执行不同的操作

``插入节点:commitPlacement
``更新节点:commitWork
``删除节点:commitDeletion

3. Layout 阶段 (执行 Dom 操作后)

`调用类组件的生命周期

``初次渲染阶段调用componentDidMount生命周期函数
``更新阶段调用componentDidUpdate生命周期函数
``执行渲染完成之后的回调函数,也就是render函数的第三个参数,并且更改this指向,指向render方法的第一个参数

`调用函数组件的钩子函数

``firstEffect:指向第一个更新的节点
``nextEffect:指向下一个更新的节点
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章