虚拟dom和真实dom的区别:
真实dom是浏览器中真实存在的dom树结构,每当页面状态发生变化的时候,真实dom 就会被完全重新渲染,包括删除,更新,和插入节点
虚拟dom是react内部中内存中维护的一个轻量级dom树副本,它与真实dom非常的相似,用于描述ui页面,当状态发生变化时, react会先更新虚拟dom,然后通过比较虚拟dom和真实dom的差异,只更新需要更改的部分,不重新渲染整个页面
真实DOM 的优点:
它是浏览器提供的原生接口,能够与底层平台很好地集成。
更改 Real DOM 可以立即反映到界面上,适用于需要实时更新的应用。
真实DOM 的缺点:
操作 Real DOM 是昂贵的,因为涉及到多次浏览器的重新渲染和重绘。
当数据变化较频繁时,频繁操作 Real DOM 可能导致性能问题。
直接操作 DOM 细节比较繁琐,需要手动处理很多底层细节。
虚拟DOM 的优点:
通过构建虚拟 DOM 并批量计算差异,可以减少对 Real DOM 的操作次数,提高性能。
对于复杂的界面更新,Virtual DOM 可以帮助开发者更方便地处理状态管理和渲染逻辑。
跨平台:虚拟 DOM 不仅限于浏览器环境,还可以用于服务端渲染、移动端开发等场景。
虚拟DOM 的缺点:
需要额外的内存空间来存储虚拟 DOM 对象,增加了内存消耗。
虚拟 DOM 的 diff 算法也会带来一定的计算开销,尤其是当组件变得复杂时。
在一些简单的界面上,使用 Virtual DOM 可能会造成不必要的性能损失。