面试知识准备-React

React Fiber

  1. react有性能问题(调用setState后,React 会递归比对VirtualDOM树,找出需要变动的节点,同步更新他们,这是一个同步的过程,当这个过程耗时严重时(所需时间大于一帧-16ms的时间)会发生ui卡顿)

  2. react引入Fiber架构让react的渲染可以被中断,这样中断的时候就可以把控制权交给浏览器来处理用户事件和UI渲染

  3. 中断的核心是“让浏览器在空闲的时候执行我的回调函数”

    1. 浏览器的环境里没有办法做到抢占和让出机制,也不知道什么任务优先级更高,所以是react的渲染主动让出,让浏览器在空闲的时候调用我的回调函数
    2. 浏览器在每一帧的时间里(1000/60),会处理用户事件,执行js代码,布局,绘制等动作,如果都完成了且不到16ms,剩余的时间是“空闲时间”
  4. 谷歌浏览支持requestIdleCallback来让用户指定空闲时的回调,但是其他浏览器不支持,react通过MessageChannel实现了类似的功能来兼容各个浏览器

面试知识准备
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。