为什么动画优先级高
来源:2-8 concurrent-mode
诺巴蒂
2019-10-21
用 ConcurrentMode 包裹是为了降低组件渲染(setState)的优先级来提高动画的优先级吗。
动画的优先级是怎么被提高的,动画应该只是事件循环的 render 环节,setInterval 本身是个宏任务,而 setState 更新dom我猜应该用了微任务,执行一次宏任务,清一次微任务,渲染一次,ConcurrentMode 只是让 setState 延后执行了,但 setInterval 还是正常执行,还能保证每次的结果是对的,这是怎么做到的,感觉如果把两次微任务合并了,结果会不对,比如1直接变成3
写回答
1回答
-
这里指的动画是浏览器渲染,浏览器渲染动画是一个频繁操作,要保证一秒30帧,浏览器就要每33.3毫秒渲染一次,如果这33.3毫秒我们全在执行js,也就是react的计算,那么浏览器就没空渲染动画,就卡帧了。
022019-10-22
相似问题