React Fiber 与 双缓冲机制

本文介绍了React中的核心概念——虚拟DOM和Fiber,以及如何通过双缓冲机制优化更新流程。虚拟DOM通过减少DOM操作提高性能,Fiber通过任务分片确保高优先级任务的及时响应。双缓冲结构在内存中构建新的Fiber树,避免频繁交换DOM导致的性能开销。
摘要由CSDN通过智能技术生成

1. 虚拟dom

在学习 Fiber 之前,首先回顾下 虚拟Dom

1. 什么是虚拟Dom?

        虚拟DOM可以看做一棵模拟了真实DOM树的JavaScript对象树, 它其实是一个js对象,对象中所包含的信息会告诉页面上需要渲染什么样的节点,包括及其子节点的描述信息。

        但虚拟dom并不会完全复刻真实dom,虚拟dom只承载必要的信息,这也是使用虚拟dom的原因之一,因为一个真实的dom对象实际上有很多属性与方法,如果在进行diff算法时是对真实dom进行对比,会产生不必要的消耗。

2. 为什么使用 虚拟Dom?

        以查找js对象的方式代替以往递归dom树的操作,将频繁更新dom的行为优先转为js对象的增删改查;通过diff算法保证最小化的DOM操作;减少重绘重排的次数。

2. React Fiber

1. 什么是 Fiber ?

        Fiber 是一个分片执行单元,每执行完一个单元,React会检查现在还剩多少时间,如果没有时间则交出控制权。

        Fiber是一个链表数据结构:

                Child 指向 当前Fiber的第一个子节点

                Sibling 指向当前Fiber的的下一个兄弟节点

                Return 指向当前 Fiber 节点的 父节点

        由于要实现低优先级任务的暂停更新,但是在高优先级任务执行完成之后还要回来继续执行低优先级任务,因此使用链表数据结构,通过指针和地址对任务进行关联。

2. 为什么使用 Fiber?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值