虚拟 DOM 是什么 有什么优缺点

虚拟 DOM 是什么

由于在浏览器中操作 DOM 是很昂贵的。频繁的操作 DOM,会产生一定的性能问题。这就是虚拟 Dom 的产生原因。
Vue2 的Virtual DOM 借鉴了开源库 snabbdom 的实现。Virtual DOM 本质就是用一个原生的 JS 对象去描述一个 DOM节点,是对真实 DOM 的一层抽象。

虚拟 DOM 的优点:

1.保证性能下限:框架的虚拟 DOM 需要适配任何上层 API 可能产生的操作,它的一些 DOM 操作的实现必须是普适的,所以它的性能并不是最优的;但是比起粗暴的 DOM 操作性能要好很多,因此框架的虚拟 DOM 至少可以保证在你不需要手动优化的情况下,依然可以提供还不错的性能,即保证性能的下限;

2.无需手动操作 DOM:我们不再需要手动去操作 DOM,只需要写好 View-Model 的代码逻辑,框架会根据虚拟 DOM 和 数据双向绑定,帮我们以可预期的方式更新视图,极大提高我们的开发效率;

3.跨平台:虚拟 DOM 本质上是 JavaScript 对象,而 DOM 与平台强相关,相比之下虚拟 DOM 可以进行更方便地跨平台操作,例如服务器渲染、weex 开发等等。

虚拟 DOM 的缺点:

1.无法进行极致优化:虽然虚拟 DOM + 合理的优化,足以应对绝大部分应用的性能需求,但在一些性能要求极高的应用中虚拟 DOM 无法进行针对性的极致优化。
2.首次渲染大量 DOM 时,由于多了一层虚拟 DOM 的计算,会比 innerHTML 插入慢。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟 DOM(Virtual DOM)是一种用于提高前端性能的技术。它是通过在内存中创建一个轻量级的、与实际 DOM 结构对应的虚拟树来表示页面的状态,然后通过比较虚拟 DOM 的变化并批量更新实际 DOM,从而避免频繁操作实际 DOM 的性能开销。 优点: 1. 提高性能:虚拟 DOM 可以在内存中对页面的状态进行操作和计算,然后再一次性地更新实际 DOM。这样可以避免频繁操作实际 DOM 带来的性能损耗,提高页面渲染的效率。 2. 简化开发:通过使用虚拟 DOM,开发者只需关注页面状态的变化,而不需要手动操作实际 DOM 进行更新。这简化了开发流程,并提高了代码的可维护性和可读性。 3. 跨平台支持:虚拟 DOM 可以提供抽象层,使得框架可以在不同的平台上运行,例如浏览器、移动设备、服务器等。 缺点: 1. 学习成本:对于初学者来说,理解虚拟 DOM 的概念和使用方式可能需要一定的学习成本。 2. 额外内存消耗:虚拟 DOM 需要在内存中维护一份与实际 DOM 对应的虚拟树,这会带来一定的内存消耗。 3. 复杂度增加:虚拟 DOM 的引入会增加框架本身的复杂度,对于一些简单的应用场景,使用虚拟 DOM 可能会显得过于复杂。 总的来说,虚拟 DOM 是一种优化前端性能的技术,通过批量更新实际 DOM 来减少性能开销。它在大型应用和复杂页面中表现出色,但对于简单应用而言,可能并不是必需的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值