美文网首页
虚拟 DOM 的原理是什么?

虚拟 DOM 的原理是什么?

作者: 恒星的背影 | 来源:发表于2022-04-25 17:50 被阅读0次

概念

React 用 JS 对象来模拟 DOM 节点,然后将其渲染成真实的 DOM 节点。

用 JSX 语法写出来的 div 其实就是一个虚拟节点:

<div id="x">
  <span class="red">hi</span>
</div>

上述代码会得到这样一个对象:

{
  tag: 'div',
  props: { id: 'x' },
  children: [
    {
      tag: 'span',
      props: { className: 'red' },
      children: [ 'hi' ],
    }
  ]
}

如果节点发生变化,并不会直接把新虚拟节点渲染到真实节点,而是先经过 diff 算法得到一个 patch 再更新到真实节点上。

优点

DOM 操作性能问题。通过虚拟 DOM 和 diff 算法减少不必要的 DOM 操作,保证性能不太差。(将多个 DOM 操作合并、未发生变化的 DOM 节点不重新渲染)
为 React 带来了跨平台能力,因为虚拟节点除了渲染为真实节点,还可以渲染为其他东西。

相关文章

网友评论

      本文标题:虚拟 DOM 的原理是什么?

      本文链接:https://www.haomeiwen.com/subject/tooaertx.html