顶级dom是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顶级dom是啥相关的知识,希望对你有一定的参考价值。

参考技术A dom是一种文档对象模型,同时也是用于html编程的接口,通过dom来操作页面中的元素。当html页面被实现加载的时候,浏览器会创建一个dom,给文档提供了一种新的逻辑结构,并且可以改变内容和结构。
dom是面向对象,并且定义了修改文档所需要的对象,各个对象之前的关系,我们可以也页面上的dom看成一个树状结构,通过js,对html文档进行添加排版,js要想访问html中的元素,就要通过对象模型来获得。

Todo like 应用中虚拟 DOM 的优势是啥

【中文标题】Todo like 应用中虚拟 DOM 的优势是啥【英文标题】:what is the advantage of virtual DOM in Todo like appTodo like 应用中虚拟 DOM 的优势是什么 【发布时间】:2018-02-03 21:13:17 【问题描述】:

我想我了解虚拟 dom 的工作原理。它使用内部 javascript 对象来表示 DOM 结构,当发生变化时,它会进行差异并修补真实的 dom。但是在很多场景下,我们知道自己做了什么改动,我们可以直接给 DOM 打补丁。这不会比通过额外的差异步骤更快吗?

例如,对于 TODO 应用,我需要添加一个项目或删除一个项目,有时我需要检查一个项目以将其标记为已完成。在这些情况下,我确切地知道应该在 DOM 中的何处执行操作,并直接在确切节点处操作 DOM。如果使用虚拟 DOM,它会做 diff,找出变化是什么,在最后一步,它会应用变化并修补真实的 DOM。这正是我在没有虚拟 DOM 的情况下所做的。如果我的真实 DOM 操作很昂贵,那么最后一步的虚拟 DOM 也很昂贵,对吧?

由于 DOM 具有结构,我认为在很多情况下我们知道我们将要进行的确切更改,我看不出虚拟 DOM 在这些场景中的优势。我错过了图片中的一些重要部分吗?

我看到一些关于虚拟 DOM 主题的其他讨论,感觉它没有回答我的问题。我希望举个例子会让它更具体。

【问题讨论】:

Why is React's concept of Virtual DOM said to be more performant than dirty model checking?的可能重复 【参考方案1】:

虚拟 DOM 是一个节点树,列出内容,元素及其属性作为对象和属性。 React 的 render() 方法从 React 组件创建一个节点树,并由于数据模型中的动作引起的突变而更新这个节点树。与真实 DOM 相比,虚拟 DOM 是真实 DOM 的内存表示。它是一个轻量级 JavaScript 对象,只是 Real DOM 的一个副本。

React.js 在任何时候都维护 2 个虚拟 DOM。其中一个是更新状态的虚拟 DOM,另一个是之前的状态虚拟 DOM。 最小化重新绘制屏幕所需的时间是浏览器制造商最关心的问题之一。可以做的最合适的事情是最小化和批处理需要重绘的 DOM 更改。这种将 DOM 更改成批处理并减少的策略,在另一个抽象层次上,是 React 的 Virtual DOM 背后的理念。

现在 Virtual Dom 是高效的。您可以期待更高的性能、最佳的 CPU 与内存使用。

您可以从我们的博客主题“在 React.js 中使用虚拟 DOM:5 大好处”中涵盖有关相同的详细主题覆盖范围

维特:- http://www.rigelnetworks.com/using-virtual-dom-react-js-top-5-benefits/

【讨论】:

以上是关于顶级dom是啥的主要内容,如果未能解决你的问题,请参考以下文章

是啥因素促使虚拟 DOM 胜过浏览器原生 DOM? [关闭]

DOM是啥?

dom是啥属性?

唯一标识 DOM 节点的最佳方法是啥?

sub和dom是啥?

“启用 DOM 存储 API”是啥意思?