react-16.13.1
2020-09-16 14:10:44 0 举报
react-16.13.1
作者其他创作
大纲/内容
缓存
1. nextUnitOfWork类似全局变量,记录下一个fiber(可能是child,可能是siblings)
fiber
requestIdleCallback
1. 回传memorizeState2. dispatchAction对currentlyRenderingFiber$1,hook做bind,回传
1. 如果不存在nextUnitOfWork,则执行fiber更新
包括useXXX其他类似api
1. 记录前一次useState的值或initialState
hook.memorizeState
render
渲染
入参element: 根fibercontainer: 容器callback
performUnitOfWork
1. 子元素转fiber,呈链表结构,第一个子元素记为父元素的child,之后的child记为第一个子元素的siblings
1. useState回传的setXX方法2. 支持function3. 用于更新memorizeState
ReactCurrentDispatcher.current
1. 创建fiber2. 更新nextUnitOfWork为根fiber
dispatchAction
更新
!nextUnitOfWork
nextUnitOfWork
reconcileChildren
1. 找下一个fiber(可能是child,可能是siblings)
react-hook
nextUnitOfWork!= null && timeRemaining
child/siblins
useState
mountState
createElement
1. 利用帧空闲遍历nextUnitOfWork下所有子fiber
commitRoot
1. 缓存currentDispatcher2. mountState执行完后还原currentDispatcher
收藏
收藏
0 条评论
下一页