面试官:React为什么要推出Fiber架构?

React为什么要推出Fiber架构,这是一道非常高频的React面试题,但是很多同学在面试时候要么回答不出来,要么回答的不深入。老规矩,点赞收藏支持一下,给我一分钟,理想哥教大家该怎么满分回答这个问题

如果我是求职者,我会这么回答:

React推出Fiber架构是为了解决React中的某些性能问题,并提供一些新的功能。

在React的传统架构中,采用了递归的方式创建虚拟DOM,递归过程是不能中断的。如果组件树的层级很深,递归会占用线程很多时间,因为JS是单线程的,所以当递归占用线程时,UI渲染线程就会一直处于等待中,所以用户会感受到页面卡顿。

为此,React推出了Fiber架构,Fiber 是 React 核心算法的重新实现,Fiber架构中有两个特性:动态优先级和可中断渲染。

其中,动态优先级会给每个任务都分配一个权重值,表示它的优先级。react在协调过程中,会动态调整任务的执行顺序,优先执行优先级高的任务,后执行优先级低的任务,解决了传统架构中所有任务都是相同优先级都是一次性执行的问题,从而提升了性能。

可中断渲染允许React在渲染过程中,对于任务进行暂停,然后适当时机再重启。这样的机制,解决了在传统架构中,因为渲染过程是单次执行不停止,而引发的渲染阻塞页面卡顿问题。

在React Fiber中,渲染过程是分"帧"进行的。当React在执行任务时,如果发现某个任务的执行时间超过了当前帧的剩余时间,它就会暂停执行,将控制权返回给浏览器去执行UI渲染,然后在下一帧继续执行未完成的任务,从而避免阻塞整个 UI。

此外,Fiber架构还提供了许多其他新功能,包括更好的动画支持、更好的浏览器事件处理、更好的同步和异步渲染支持以及更好的可访问性支持。

以上就是这个问题的回答了,大家可以下次面试时试试这么回答看看效果。

最后,关于关注理想哥,每天学点前端面试小技巧。

#第一次面试##前端##前端web滴滴#
全部评论

相关推荐

4月中开始截至到今天,投了10个实习,收到有1个测评和1个邀面。决定放弃实习,但是不能放弃面试机会!----------------------两年制硕,时间很赶,所以事情也都赶在了一起。大概是在今年的 1 月开始,我开始系统的学习硬件设计。我在本科的时候虽然也画过一些 PCB 板,但是感觉那个时候只是会用 AD 这个软件,对于硬件的设计其实一窍不通。但是在当时,自己没有珍惜时间认真学,觉得自己的课题慢慢做,自己慢慢学,暑假肯定也能找个实习。可是在 4 月的时候,突然被导师外派给一个师兄帮忙做实验了,导师让我去那边学习人家的终端使用,但是我在那边就只是在给师兄做实验干苦力,每天都很痛苦。五月回来了,导师找我开会批评我没有在那边“工作”,我说一直给师兄做实验,每天早 7 晚 9,晚上回来洗完澡洗完衣服就 10 点了。结果导师说:时间是挤出来的,你现在帮你师兄做实验,到时你师兄也得帮你做实验。导师说完这句话后我就无语了,我一直以为我导师挺好的呢,结果没想到,她也有这样的一面。更让我难受的事是,我的小导又给我整活了。最近要开题了(6 月初),结果我小导要给加工作量,估摸着要多写论文 10 多页?因为我是两年制硕,所以到现在要给我加工作量,我其实是很痛苦的,因为按照进度来说,我只剩下半年的时间做科研的内容,而这半年的时间,我需要做原本就刚刚好的工作量+找工作+现在小导想让我额外做的内容+给师兄当苦力? 这几天一直在整理自己的方案,想了很多,也听了很多师兄的建议,现在脑子乱乱的,觉得自己或许应该静一静,听一听大脑内心自己的想法。#情感##我的求职思考#
点赞 评论 收藏
转发
点赞 6 评论
分享
牛客网
牛客企业服务