【问题标题】:What does it mean by virtual dom is in-memory?虚拟 dom 在内存中是什么意思?
【发布时间】:2021-06-10 05:41:11
【问题描述】:

我了解了 virtual-dom 如何对 DOM 操作进行批处理以提高性能。但是我看到一些帖子说 virtual-dom 很快,因为它是实际 DOM 的in-memory representation

我已阅读此ANSWER。它说:

另一方面,必须从页面访问真实的 DOM 并将其加载到内存中以进行任何操作。

这是否意味着浏览器的真实 DOM 不在内存中?如果浏览器的DOM也是in-memory,那么虚拟DOM的in-memory有什么特别之处呢?

【问题讨论】:

    标签: reactjs vue.js virtual-dom


    【解决方案1】:

    虚拟 DOM 只是内存中的一个 javascript 对象。虽然 DOM 也主要在内存中(不在磁盘中和在云中),但它是一个复杂的系统,连接了许多部分。

    不同之处在于 DOM 很慢。操作 DOM 涉及许多其他任务 (https://stackoverflow.com/a/6817110/8810271)。在没有其他任务的情况下操作虚拟 DOM 只不过是一个 javascript 对象,比element.innerHTML=x 快得多。

    但请记住,您仍然需要在对虚拟 DOM 进行差异化后操作 DOM,以使更改生效。还有it isn't always faster

    【讨论】:

    • so in-memory 是用来说明虚拟 DOM 在 diffing 之前不会产生任何副作用,而不是因为它已经加载到主内存上所以速度很快?
    • @JunsooChoi 我已经编辑了帖子来回答这个问题
    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 2020-06-28
    • 1970-01-01
    • 2011-07-07
    • 2020-04-13
    • 2013-12-21
    • 2012-01-02
    相关资源
    最近更新 更多