glownight

返回

满分答案#

虚拟 DOM 就是用普通 JS 对象模拟真实 DOM 树。它的核心价值是:批量、高效更新视图,避免直接操作 DOM 带来的性能损耗,同时实现跨平台渲染,并让开发者专注于数据和UI。


一、核心原因#

  1. 真实 DOM 操作非常昂贵、慢 真实 DOM 节点属性非常多,频繁操作、修改、重排重绘会严重卡顿。 虚拟 DOM 是轻量 JS 对象,操作极快。

  2. 实现 DOM 批量更新,减少重排重绘 虚拟 DOM 不会立即操作 DOM,而是在内存中做 diff,收集所有变更后一次性更新真实 DOM,把多次 DOM 操作合并成一次。

  3. 提供跨平台能力(React 最关键) 虚拟 DOM 是一层抽象,不依赖浏览器环境 → 可渲染成小程序、React Native、桌面端 → 一次编写,多端运行

  4. 声明式开发,不用手动操作 DOM 只需要关心数据变化,React 自动更新 UI 代码更简洁、可维护性更强


二、通俗理解#

  • 真实 DOM = 复杂、笨重、操作慢
  • 虚拟 DOM = 轻量、简单、纯 JS 对象
  • Diff 算法 = 只改变化的部分

虚拟 DOM 相当于真实 DOM 的“草稿纸”,先在草稿纸上改好,再一次性誊写到 DOM 上。


三、虚拟 DOM 工作流程#

  1. 状态更新 → 生成新虚拟 DOM
  2. 旧虚拟 DOM 做 diff
  3. 找到最小差异
  4. 一次性更新真实 DOM

四、满分总结#

  1. 真实 DOM 操作性能差,虚拟 DOM 是轻量对象,操作更快;
  2. 批量更新 DOM,减少重排重绘,提升性能;
  3. 跨平台渲染,支持 React Native、小程序等;
  4. 声明式编程,让开发者不用手动操作 DOM,专注业务。

一句话终极记忆#

虚拟 DOM = 用 JS 对象模拟 DOM → 批量更新 → 高性能 → 跨平台

react为什么需要虚拟 DOM?
作者 glownight
发布于 2026年1月23日