vue虚拟dom diff算法


vue为什么要操作虚拟dom?


如果直接操作真实dom ,性能低
在vue中,每个组件走有一个render函数,这种渲染不仅发生在组件创建的时候,还发生在视图依赖的数据更新的时候,如果在渲染时,直接使用真实dom,由于真实dom的创建,更新,插入会带来大量的性能消耗,从而就会极大地降低渲染效率,因此,vue在渲染时,使用虚拟dom来替代真实dom主要是解决渲染效率的问题

render函数 第一次调用实在 组件加载的时候 第二次就是 试图数据依赖更新的时候


diff算法


vue2中
深度 递归+双指针
第一步: 判断是不是同一个元素 不是同一个元素的直接替换
第二步: 是同一个元素 => 比对属性 => 比对儿子
比对 : 老的有儿子 新的没有儿子 就是删除操作
老大没有儿子 新的有儿子 就是添加操作
文本情况 就是添加
新老都有儿子 =》双指针 头头 尾尾 头尾 尾 头 =》对比查找后进行复用

vue3中: 最长递增子序列

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值