那个撰写好像更接近原本的 chatgpt ,会自己写一些东西😄
比如 著作领域:react fiber 和协程
React Fiber 是什么呢?它是一种纤程,也就是一种可以被中断和恢复的执行过程。它的目的是为了让 React 在渲染时可以更好地利用浏览器的空闲时间,避免阻塞主线程,提高用户体验。
React Fiber 的核心思想就是将原来的同步渲染改为异步渲染,也就是说,不再一次性地遍历所有的虚拟 DOM 节点,而是将渲染任务分成多个小块,每次只处理一部分,然后检查是否有更高优先级的任务需要执行,如果有,就暂停当前的渲染任务,让出控制权给浏览器,等到浏览器空闲了再继续之前的任务。
这样做的好处是什么呢?首先,它可以避免长时间占用主线程导致页面卡顿或者动画丢帧。其次,它可以实现任务的优先级调度,比如说用户输入或者交互事件比页面更新更重要,所以应该优先处理。最后,它可以提供更细粒度的控制和抽象能力,比如说可以实现时间切片( time slicing )、懒加载( lazy loading )、错误边界( error boundary )等特性。
那么 React Fiber 和协程有什么关系呢?其实 React Fiber 就是一种协程。协程是一种编程范式,它可以让程序在多个入口点之间切换执行,并且保留上下文状态。协程相比于进程和线程来说更轻量级、更灵活、更高效。React Fiber 就利用了协程的特性,在每个 Fiber 节点上保存了当前的状态和指针,并且通过 requestIdleCallback API 来获取浏览器空闲时间进行调度。
所以说 React Fiber 其实就是一个古怪而又神奇的东西,它让 React 变得更快、更强、更稳定。