From 7cc499ff4919868008672821ebc0c4d9c6fd2db9 Mon Sep 17 00:00:00 2001 From: YuJian920 Date: Tue, 19 Apr 2022 19:51:41 +0800 Subject: [PATCH] vault backup: 2022-04-19 19:51:41 --- React 的源码深入/Fiber 数据结构.md | 3 ++- React 的源码深入/React Reconciler - Fiber 创建.md | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/React 的源码深入/Fiber 数据结构.md b/React 的源码深入/Fiber 数据结构.md index f6ab133..6718383 100644 --- a/React 的源码深入/Fiber 数据结构.md +++ b/React 的源码深入/Fiber 数据结构.md @@ -75,7 +75,8 @@ >指向副作用链表的最后一个 Fiber 节点 `lanes` : -> +> Fiber 节点的优先级 `childLanes` : +>子 Fiber 节点的优先值 diff --git a/React 的源码深入/React Reconciler - Fiber 创建.md b/React 的源码深入/React Reconciler - Fiber 创建.md index a657540..30716fc 100644 --- a/React 的源码深入/React Reconciler - Fiber 创建.md +++ b/React 的源码深入/React Reconciler - Fiber 创建.md @@ -1,5 +1,3 @@ -# React Reconciler - Fiber 创建 - > React 从 16 开始,对底层架构做了一次重构,和 15 不同,渲染 vdom 的时候一改以往的递归执行,引入了一个新的概念,叫做 Fiber,虽然最后渲染到页面的时候还是递归,但是 Fiber 的递归是可以中断的,根据优先级由浏览器优先执行任务,保证在大量视图需要更新的时候,浏览器仍然能保证快速的响应 在 React 中,视图的更新使用了双缓存的方式,也就是说在 React 运行时,同时有着两棵 Fiber 树,一颗是当前视图上的 Fiber 树,叫 current,另外一棵是存在内存当中的下一次视图更新时用的叫做 workInProgress,React 在构建时会创建整个 app 唯一的根 Fiber 节点,叫做 FiberRootNode,这个节点上有一个 current 指针,指向的是当前正在页面上显示的 Fiber 树也就是 current,当 workInProgress 递归生成完毕,指针会立即指向 workInProgress ,而旧的 current 就会在下一次渲染中变成 workInProgress ,就这样循环交替完成页面的递归渲染