摘要: 1. before mutation阶段 (操作 Dom 前) 更新情况下:`主要调用类组件生命周期函数getSnapshotBeforeUpdate,并且把旧的props和旧的states传递进去 // commit 阶段的第一个子阶段 // 调用类组件的 getSnapshotBeforeUpd 阅读全文
posted @ 2021-05-31 18:52 小短腿奔跑吧 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 因为递归是不能被中止的,需要一直占用线程,而 JS 又是属于 单线程, 所以 当我们需要执行操作时,是不能被中断的,一旦执行,则需要全部操作执行完成后,才可释放线程, 在这种情况下,我们在第一次渲染的时候,程序需要将 生成 Dom 和 包含事件 全部准备齐全后,才会添加 元素到 页面,并展示到浏览器 阅读全文
posted @ 2021-05-31 18:27 小短腿奔跑吧 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1. React 中使用双缓存的机制,来完成 Firber树的构建与替换,实现 Dom 对象的快速更新。 2. React 中会同时存在两个 Fiber 对象,当前在屏幕中显示的树是 CurrentFiber 树,当发生更新时,React会重新创建一颗新的Firber树是 WorkInProgres 阅读全文
posted @ 2021-05-31 18:25 小短腿奔跑吧 阅读(396) 评论(0) 推荐(0) 编辑
摘要: // 更新 hostRoot // <div id="root"></div> 对应的 Fiber 对象 function updateHostRoot(current, workInProgress, renderExpirationTime) { pushHostRootContext(work 阅读全文
posted @ 2021-05-31 17:20 小短腿奔跑吧 阅读(386) 评论(0) 推荐(0) 编辑