We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fiber 是为了增强 react 对动画、布局、手势的支持。它的首要特性是增量渲染。将渲染工作分割为多个 chunk,让后将其放在多个 frame 中渲染。其他特性包括当更新来时,暂停、终止、重用 work;对不同类型的更新赋予不同优先级;新的并发基元。
fiber 是为了让 react 能发挥调度的优势:
为了完成以上功能,需要把 work 分割为一个个单元。一个 fiber 就是一个 work 单元。 react 组件可以看做一个数据的函数:
v = f(d)
requestIdleCallback 在空闲时间调度低优先级的函数。requestAnimationFrame在下一帧渲染前调度高优先级的函数。需要把渲染工作分割为增量的计算单元,而调用栈是一旦执行就会一直执行到栈为空的,所以不能依赖于调用栈。
requestIdleCallback
requestAnimationFrame
将 fiber 看做是一个个尾调用函数,fiber 是一种虚拟栈帧,react 可以控制其执行和暂停。
hooks 的原理
The text was updated successfully, but these errors were encountered:
shaozj
No branches or pull requests
如果自己开发一个类 react 框架,需要做什么
特性:
核心功能:
react fiber 笔记
fiber 是为了增强 react 对动画、布局、手势的支持。它的首要特性是增量渲染。将渲染工作分割为多个 chunk,让后将其放在多个 frame 中渲染。其他特性包括当更新来时,暂停、终止、重用 work;对不同类型的更新赋予不同优先级;新的并发基元。
fiber 是为了让 react 能发挥调度的优势:
为了完成以上功能,需要把 work 分割为一个个单元。一个 fiber 就是一个 work 单元。
react 组件可以看做一个数据的函数:
requestIdleCallback
在空闲时间调度低优先级的函数。requestAnimationFrame
在下一帧渲染前调度高优先级的函数。需要把渲染工作分割为增量的计算单元,而调用栈是一旦执行就会一直执行到栈为空的,所以不能依赖于调用栈。将 fiber 看做是一个个尾调用函数,fiber 是一种虚拟栈帧,react 可以控制其执行和暂停。
解决 react 未能很好解决的问题
参考文献
hooks 的原理
The text was updated successfully, but these errors were encountered: