
2025-05-13 日报 Day185

今日的鸡汤
人生不就是这样,经历过一次次考验才能成长;人生不就是这样,哪怕雨雪霏霏也要去追寻阳光。
今日学习内容
1、https://www.youtube.com/watch?v=EVFZazcxAbo&t=4112s
今日笔记
Stack Reconciler有哪些局限?
Fiber架构?
1、前置:单线程的Javascript和多线程的浏览器
多线程的浏览器除了要处理Js线程以外还要处理其他线程,比如渲染线程、事件线程等。
其中包括负责处理DOM的UI渲染线程,而Js线程可以操作DOM。
如果渲染线程和js线程同时工作,那么渲染结果难以预测
js线程和渲染线程必须是互斥的,当其中一个线程执行时,另一个线程只能挂起等待。
同样的还是浏览器的事件线程:当事件被触发时,对应的任务不会立刻被执行,而是由事件线程把它添加到任务队列的末尾,等待js的同步任务执行完毕后,在空闲的事件里执行出列。
Stack Reconciler是一个同步的递归过程 Reconciler会重复“父组件调用子组件”的过程直到最深的一层节点更新完毕,才慢慢向上返回
设计思想:Fiber
Fiber比线程还要纤细,也就是纤程,纤程的出现意在对渲染过程实现更加精细的控制
从架构角度来看,Fiber是对React核心算法的重写
从编码角度来看,Fiber是React内部所定义的一种数据结构
从工作流的角度来看,Fiber节点保存了组件需要更新的状态和副作用
Fiber架构的应用目的是实现“增量渲染”
实现增量渲染的目的,是为了实现任务的可中断、可恢复,并给不同的任务赋予不同的优先级,最终达成更加顺滑的用户体验。
之前:
现在:
每个更新任务都会被赋予一个优先级,若发现B得优先级高于当前任务A,那么当前处于Reconciler层的A任务就会被中断,A任务将会被重写推入Reconciler层,继续它的渲染,这就是“可恢复”。