-
Notifications
You must be signed in to change notification settings - Fork 892
Open
Labels
Reactteach_tagteach_tag喜马拉雅companycompany头条companycompany挖财companycompany滴滴companycompany菜鸟网络companycompany
Metadata
Metadata
Assignees
Labels
Reactteach_tagteach_tag喜马拉雅companycompany头条companycompany挖财companycompany滴滴companycompany菜鸟网络companycompany
Projects
Milestone
Relationships
Development
Select code repository
Activity
Genzhen commentedon Jun 23, 2020
1)背景
2)实现原理
sweetliquid commentedon Nov 4, 2020
Component -> Element -> Fiber -> DOM 中间哪来的 VDOM,不存在根据 VDOM 生成 Fiber 一说。
Genzhen commentedon Nov 5, 2020
Fiber tree 是React 在 render 第一次渲染时,会通过 React.createElement 创建一颗 Element 树,可以称之为 Virtual DOM Tree,由于要记录上下文信息,加入了 Fiber,每一个 Element 会对应一个 Fiber Node,将 Fiber Node 链接起来的结构成为 Fiber Tree。Fiber Tree 一个重要的特点是链表结构,将递归遍历编程循环遍历,然后配合 requestIdleCallback API, 实现任务拆分、中断与恢复。
qzruncode commentedon Apr 14, 2021
fiber就是一种数据结构,fiber将递归操使用内存来模拟,从而在react pre-commit阶段可以随时打断和恢复,在commit阶段一次性执行完成,所有的effect和hooks,以及任务优先级都是挂在fiber节点上这个优先级其实就是一个expireTime,在expireTime之内的effect都会合并成一个patch一次性更新。剩下的就是diff算法,diff算法和vue的diff类似,采用右移策略看似比vue的低效,但是实际项目中有多少比例的移动操作呢?vue的diff是不管三七二十一都求最长有序序列这个不要时间的吗?
fernandoxu commentedon Aug 19, 2021
React里管Virtual DOM叫React Element吧