react17

React基于浏览器的事件机制自身实现了一套事件机制,包括事件注册、事件的合成、事件冒泡、事件派发等,在React中这套事件机制被称之为合成事件

react15的架构是递归,一个长任务会阻塞后续用户交互、卡顿,改成fiber架构,异步任务 放在 requestAnimationFrame 超时时间 + messageChannel  模拟requestIdleCallback

在一个宏任务里面执行,保证了用户不会失去响应(心电图的原因)

Scheduler模块 16就有   对所有更新都做了一个优先级的绑定,来调度任务的优先级  可以中断低优先级任务,先执行高优先级任务

1.放在宏任务中执行,不会一直占用主线程,有机会响应用户

2.每个更新都有优先级的绑定, 并且可以中断低优先级,执行高优先级的更新

16.8中 expirationTime解决了两个事:优先级,批处理,一个字段两个事都做了

缺点是Suspense出现,高优先级io任务(Suspense相关的任务)会阻塞,低优先级cpu任务,只能一次处理一个优先级任务

17增加了lanes  lanes(一个优先级lane 多个优先级lanes)分开了优先级,批处理  能同时执行多个优先级任务(合并优先级)

源码 & 源码的反码+1

hooks没有批处理

Reconciler协调器
 
posted @ 2022-03-06 20:50  国服第一李师师  阅读(90)  评论(0编辑  收藏  举报