Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

对虚拟 DOM 的理解?虚拟 DOM 主要做了什么?虚拟 DOM 本身是什么? #479

Open
lgwebdream opened this issue Jul 6, 2020 · 2 comments
Labels
58 company React teach_tag Vue teach_tag 微医 company 有赞 company

Comments

@lgwebdream
Copy link
Owner

No description provided.

@lgwebdream lgwebdream added 58 company React teach_tag Vue teach_tag 微医 company 有赞 company labels Jul 6, 2020
@lgwebdream
Copy link
Owner Author

扫描下方二维码,获取答案以及详细解析,同时可解锁800+道前端面试题。

@TANGYC-CS
Copy link

虚拟 DOM(Virtual DOM)是一种编程概念,它用 JavaScript 对象(在 Vue.js 的上下文中,这些对象具体表现为 VNode,即虚拟节点)来表示真实的 DOM 结构。
每个 VNode 对象至少包含标签名(type)、属性(attrs)和子元素对象(children)等属性。这些属性共同描述了 DOM 节点的结构和内容。
这种表示法使得前端开发者能够以一种更加声明式的方式来描述和更新页面。

虚拟 DOM 主要作用有以下几点:

  1. 性能优化:虚拟 DOM 通过比较新旧两个虚拟 DOM 树,计算出最小的变更集,然后只将这些变更应用到实际的 DOM 上。
    这样可以显著减少直接操作真实 DOM 的次数,从而提高性能。
    因为直操作真实 DOM 是一项昂贵的操作,会导致浏览器执行大量的重排和重绘操作。
  2. 简化操作:虚拟 DOM 提供了一种更加抽象和简化的方式来操作 DOM。开发者不需要直接操作复杂的 DOM API,而是通过操作虚拟 DOM 来间接的修改页面
  3. 跨平台渲染:虚拟 DOM 使得前端框架(如 Vue.js)能够更容易地实现跨平台渲染。
    因为虚拟 DOM 是对真实 DOM 的一种抽象表示,所以可以被映射到不同的渲染目标上,例如浏览器、服务端渲染、移动应用等。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
58 company React teach_tag Vue teach_tag 微医 company 有赞 company
Projects
None yet
Development

No branches or pull requests

2 participants