Vue 为什么需要虚拟 DOM

Vue 为什么需要虚拟 DOM

基本概念

基本上所有框架都引入了虚拟 DOM 来对真实 DOM 进行抽象,也就是现在大家所熟知的 VNode和VDOM

  • Virtual DOM 就是用 js 对象来描述真实 DOM,是对真实DOM 的抽象,由于直接操作 DOM 性能低但是 js 层的操作效率高,可以将 DOM 操作转化成对象操作,最终通过 diff 算法比对差异进行更新 DOM(减少了对真实DOM的操作)。
  • 虚拟DOM 不依赖真实平台环境从而也可以实现跨平台

补充:VDOM 是如何生成的?

  • 在vue 中我们常常会为组件编写模板- template
  • 这个模板会被编译器编译为渲染函数 - render
  • 在接下来的挂载过程中会调用 render 函数,返回的对象就是 虚拟dom
  • 会在后续的 patch 过程中进一步转化(遍历何地鬼操作)为 真实 dom。

再次补充:VDOM 如何做 diff 的?

  • 挂载过程结束后,会记录第一次生成的 VDOM - oldVnoder.
  • 当响应式数据发生变化时,将会引起组件重新 render,此时就会生成新的 VDOM-newVnode.
  • 使用oldVnode与newVnode 做 diff 操作,将更改的部分应到真实DOM 上,从而转换为最小量的 dom操作,高效更新视图。

更多详细内容,请微信搜索“前端爱好者戳我 查看

总结

Vue需要虚拟DOM的主要原因是为了提高性能和优化渲染过程。

虚拟DOM是一个轻量级的JavaScript对象,它对应着真实的DOM结构。当Vue中的数据发生变化时,Vue会先使用虚拟DOM进行计算和比较,然后才会将变化的部分更新到真实的DOM中。

使用虚拟DOM可以有效地减少直接操作真实DOM所带来的性能损耗。相比于直接对真实DOM进行频繁的操作和更新,Vue通过对比虚拟DOM的差异,只对需要更新的部分进行最小化的操作,从而减少不必要的DOM操作,提高页面的渲染效率。

此外,虚拟DOM还具有跨平台的能力。由于虚拟DOM是基于JavaScript对象的,它可以在不同的环境中运行,比如浏览器、服务器端或移动端。这使得Vue具备了更广泛的应用场景,并且可以在不同的平台上进行统一的开发和测试。

Vue使用虚拟DOM的目的是为了:

  • 提高性能
  • 优化渲染过程
  • 并实现跨平台的能力。

通过使用虚拟DOM,Vue能够以更高效的方式更新和渲染页面,提供更好的用户体验。

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端布道人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值