这一节非常乱,但是又非常重要,建议拆成几节,画下流程图,每节先讲解此节的整体设计在细入代码。这节的讲解直接开始分析每行代码确实难以理解是什么意思。

来源:4-7 reactScheduler(3)

慕村9239336

2019-07-18

这一节非常乱,但是又非常重要,建议拆成几节,画下流程图,每节先讲解此节的整体设计在细入代码。这节的讲解直接开始分析每行代码确实难以理解是什么意思。

写回答

4回答

Jokcy

2019-07-19

感谢你的建议,会根据情况考虑的,谢谢。

0
1
慕村9239336
非常感谢!
2019-07-22
共1条回复

幕布斯1509035

2019-11-02

//img.mukewang.com/szimg/5dbd4437081f888c12251600.jpg


这是我整理 调度这一js文件的流程图 希望能帮助你

(我自己画了后,再看两遍调度视频能很好理解了)

0
0

慕村9239336

提问者

2019-07-23

这一节的内容又稍微考证了一下,postMessage应该是macro-task队列中的任务,也就是在当前轮次animationTick函数中执行了postMessage,会等UI更新了后,在之后的事件循环轮次中执行,最好的情况就是接下来的那一轮就可以执行,最坏的情况就是因为始终被其它优先任务或者耗时任务占用时间导致idleTick设置didTimeout = true。其实也许用microtask的任务更好,这样下一轮会清空microtask队列,这样很快就可以执行。

0
1
慕九州5549167
本来调度的目的就是每一帧留足够的时间给浏览器渲染动画处理交互。你把react的任务放微任务队列里面。要清空掉岂不是要占很长时间了阻塞交互了
2021-01-07
共1条回复

慕村9239336

提问者

2019-07-22

针对这一节,主要在各种time计算的时候有些乱,因为一上来不知道这些计算的目的和设计,因此反复慢速看了多遍。感谢你的回答,希望以后更加完美。

0
0

React源码深度解析 高级前端工程师必备技能

掌握React源码,让你的开发水平没有上限,更不惧前端未来的到来

1749 学习 · 336 问题

查看课程