当前位置: 首页 > Web前端 > HTML

前端开发面试框架react相关问答

时间:2023-03-28 18:06:55 HTML

1.区分RealDOM和VirtualDOM2。你了解虚拟DOM吗?解释它是如何工作的。为什么要用virtualdom,因为我们要提高dom渲染性能,浏览器渲染dom是最耗性能的,什么是virtualdom,就是把dom树转成js对象树,经过虚拟前端训练virtualdom就是创建后,根据组件的状态,来自父组件的props,以及redux和mobx全局状态的更新,导致新的js对象树。通过diff比较算法,比较两个js对象的差异,并将比较的结果渲染到dom树上,diff算法是逐层比较,找到相同的reservation,找到新的创建,缺少则删除,逐层比较,复杂度由3变为1,逐层-层比较带来两个问题,1两个树结构比较复杂,有一堆2兄弟节点,这是一个低效的算法,react做了两个假设,同一个组件必须产生相似的dom结构,不同的节点产生不同的dom结构,2兄弟节点传递一个id,唯一的key。同一个组件的结构是稳定的,修改状态就是改变局部性。借助开发人员将id传递给兄弟节点,这两个假设成立。VirtualDOM的工作原理只需三个简单的步骤。1.每当底层数据发生变化时,整个UI都会在VirtualDOM描述中重新渲染。2.然后计算之前的DOM表示和新的DOM表示之间的差异。3.计算完成后,真正的DOM将只更新实际发生变化的内容。3、为什么浏览器无法读取JSX?浏览器只能处理JavaScript对象,它们无法读取常规JavaScript对象中的JSX。所以为了让浏览器能够读取JSX,首先需要使用像Babel这样的JSX转换器将JSX文件转换成JavaScript对象,然后传递给浏览器。4.你对React中的refs了解多少?列出一些应该使用Refs的情况。Refs是React中引用的简写。它是一个有助于存储对特定React元素或组件的引用的属性,该属性将由组件渲染配置函数返回。用于引用render()返回的特定元素或组件。当您需要进行DOM测量或向组件添加方法时,它们会派上用场。以下是应该使用refs的情况:需要管理焦点,选择文本或媒体播放时触发动画与第三方DOM库集成示例:this.refs.myTextInput.focus()5.道具和状态有什么区别?props:一般用于父组件与子组件、组件之间的通信。state:一般用于组件内部的状态维护,更新组件内部数据和状态,更新子组件的props等。6.React组件有哪些阶段?在哪个生命周期可以做性能优化?1.React组件的生命周期分为三个部分:实例化、生存期和销毁。2.shouldComponentUpdate:react性能优化非常重要的一环。当组件接受新的state或props时调用,我们可以设置这次比较前后两个props和state是否相同,如果相同则返回false防止更新,因为相同的propertystate肯定会生成相同的dom树,所以不需要创建新的DOM树并用diff算法比较旧的DOM树可以节省很多性能,尤其是当DOM结构复杂的时候。7.React的框架是什么,数据流是单向绑定还是双向绑定?React是视图层的框架,数据流是单向数据流原作者:天上的沙