Open wangyuanfen opened 2 years ago
主要就是想了解下,是不是其实除了没有开启concurrent模式外,其他的什么优先级那些都是存在的
18以前都是同步的,没有开启时间切片,也没有开启可中断渲染。现在18是开启了的。
其他的update优先级,渲染优先级是存在的。但是由于legacy模式下没有concurrent特性,故大部分的优先级是没有场景用的(虽然源码里面有,但是大部分没用上)。
18开始,优先级的使用场景要丰富很多,大部分都应用上了
的确是的。传统模式(包括18),都是同步循环。只有开启了并发特性的,比如使用了 createRoot
或者 useTransition
等,才会进入并发。进入时间分片的要求更加严格,需要不包含阻塞的优先级以及没有超时的更新,才会开启时间分片
const shouldTimeSlice =
!includesBlockingLane(root, lanes) &&
!includesExpiredLane(root, lanes) &&
(disableSchedulerTimeoutInWorkLoop || !didTimeout);
因为我看到处的文章都是在说concurrent模式的时间切片,但是明明就没开启,搞的我很懵逼