理解虚拟 DOM ,React 选择它是为了性能吗?

2020-12-17  本文已影响0人  阿畅_

虚拟 DOM 是什么

  1. 虚拟 DOM 是 JS 对象
  2. 虚拟 DOM 是对真是 DOM 的描述

虚拟 DOM 的本质是 JS 和 DOM 之间的一个映射缓存,它形态上表现为一个能够描述 DOM 结构及其属性信息的 JS 对象。

React 中的虚拟 DOM 是怎么工作的

前端 DOM 操作解决方案的发展史

  1. 原生 JS 操作的时期
  1. 解放生产力的先导阶段 jQuery 时期
  1. 模板引擎的方案
const data = [
  {
    name: 'achang',
    age: 18
  },
  ...
]
<table>
  {% data.forEach(function(p){ %}
  <tr>
    <td>{% p.name %}</td>
    <td>{% p.age %}</td>
  </tr>
  {% }); %}
</table>

但是它在性能上的表现并不尽如人意:由于不够 “智能”,它更新 DOM 的方式是将已经渲染出 DOM 整体注销后再整体重渲染,并且不存在更新缓冲这一说。在 DOM 操作频繁的场景下,模板引擎可能会直接导致页面卡死。

  1. 虚拟 DOM

为什么虚拟 DOM 的价值不在性能

虚拟 DOM 对比模板引擎

那么虚拟 DOM 的价值到底是什么呢?

  1. 研发体验、研发效率 的问题:
  1. 跨平台的问题(同一套虚拟 DOM 可以在不同的平台渲染)
上一篇 下一篇

猜你喜欢

热点阅读