Virtual DOM

最近接触到了Vue,跟接触过到React一样。Vue同样也有Virtual DOM这一概念。官方给出到概念是:Vue通过建立一个虚拟DOM树对真实DOM发生的变化保持追踪。

真实的DOM

浏览器在渲染界面的过程中,先解析CSS样式和DOM树,然后将其整合成一棵渲染树,再通过布局算法去计算每个节点在浏览器中的位置,最终输出到显示器上。

虚拟DOM

组件的HTML结构并不会直接生成DOM,而是映射生成虚拟的JavaScript DOM结构,可以理解为保存了一棵DOM树被渲染之前所包含的所有信息,而这些信息可以通过对象的形式一直保存在内存中,并通过JavaScript的操作进行维护。

下面用简单的例子来说明真实DOM和虚拟DOM操作的不同点:

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>

如例子所示的结构,如果要删除<li>1</li><li>3</li>后面增加一个<li>4</li>

用传统的办法

先删除<li>1</li>标签(remove),插入<li>4</li>标签(append)。

虚拟DOM

第一步:通过树的形式保存的dom信息,如果在页面是第一次加载的时候被渲染到浏览器中,但仍是通过虚拟dom的方式创建的

第二步:检测到数据更新,需要更新dom,先在JavaScript中将需要修改的节点全部修改完成。

第三步:将最终生成的虚拟DOM更新到视图中去。

相对于 DOM 对象,原生的 JavaScript 对象处理起来更快,而且更简单。而且虚拟DOM通过各种算法能优化第二步的操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值