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库集成示例:
