1.利用浏览器空闲时间执行,不会长时间占用主线程
requestIdleCallback是浏览器提供的API,其利用浏览器空闲时间执行任务,当前任务可被终止,优先执行更高级别的任务
2.将对比更新dom的操作碎片化
3.碎片化任务,可以根据需要被暂停
fiber对象的属性:
属性名 | 说明 |
---|---|
type | 节点类型,和虚拟DOM对象的type相同,用于区分元素、文本、组件 |
props | 节点属性,同虚拟DOM对象 |
stateNode | 节点DOM对象或者组件实例 |
tag | 标记,用于标记节点 |
effects | 存储包含自身和所有带的fiber数组 |
effectTag | 标记当前节点需要进行的操作,包含插入、更新、移除等 |
parent | 父fiber对象,在React中叫Return |
child | 当前filber对象的子级filber对象 |
sibling | 当前filber对象的下一级兄弟节点 |
alternate | fiber对象备份,用于对比 |