Fiber vs Stack
render
react 渲染机制有2种: v16 之前用的是 stack, 更新比较慢,遇到大量更新的时候页面会卡顿。 v16 之后用的是 Fiber, 分层对比更新,16ms 之内更新完成,更新效率高 react-dom: render()方法: 作用: 执行render方法 渲染页面, 接收3个参数,渲染的组件, 当前渲染的组件挂载的节点,第三个参数是一个回调函数,渲染完成之后做的事情, 所以render 方法是一个异步方法。
render()的渲染机制 stack 老得渲染机制
fiber 新的渲染机制 分层比对更新(16ms内比对完)
#### 动画1秒60帧
人眼中,如果1秒内有60帧,那么动画看起来流畅,否则就卡顿。这样算起来,一帧就是12毫秒。
#### Stack - 16版本之前的渲染模式
主要特点,等等整个虚拟树完成了比较后,再统一渲染,如果渲染节点巨大,虚拟树比较的工作可能会超过12毫秒,此时会出现卡顿现象。
#### Fiber - 16版本的渲染模式
主要特点,将整个虚拟数的比对拆分成很多个小任务,每个小任务的完成时间控制在一帧12毫秒内,每个小任务完成后都会完成一次渲染(小任务对应的局部渲染)。
因为每次渲染都控制在一帧以内,不用等所有任务或整个树比对完后才渲染,所有看起来流畅,不卡顿。