1
0
Fork 0
Browse Source

vault backup: 2022-05-07 21:53:14

master
YuJian920 3 years ago
parent
commit
39d50aec3c
  1. 4
      React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md

4
React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md

@ -3,8 +3,12 @@ @@ -3,8 +3,12 @@
在 React 中,视图的更新使用了双缓存的方式,也就是说在 React 运行时,同时有着两棵 Fiber 树,一颗是当前视图上的 Fiber 树,叫 `current`,另外一棵是存在内存当中的下一次视图更新时用的叫做 `workInProgress`,React 在构建时会创建整个 app 唯一的根 Fiber 节点,叫做 `FiberRootNode`,这个节点上有一个 `current 指针`,指向的是当前正在页面上显示的 Fiber 树也就是 `current`,当 `workInProgress` 递归生成完毕,指针会立即指向 workInProgress ,而旧的 `current` 就会在下一次渲染中变成 `workInProgress` ,就这样循环交替完成页面的递归渲染
本次源代码解读的 DEMO 只用了最简单的 `useState` 做计数器修改触发页面刷新,并没有新增新的 DOM 节点之外的其他操作,第一次和第二次和之后页面刷新实际上都只是 `useState` 触发变化并在页面上显示计数内容出现变化
# React 17.0.2
## 首屏渲染
### createWorkInProgress
React 的首屏渲染时会交由 `createWorkInProgress` 函数生成一个 `WorkInProgress Fiber` 节点,这个节点就是 FiberNode,`createWorkInProgress` 接收两个参数,分别是 `current``pendingProps`,这里的 `pendingProps` 是组件的属性

Loading…
Cancel
Save