前端模式 VD, 脏检查 MVVM ,数据收集 MVVM 所使用的场合

VD 虚拟DOM

数据变化,先修改虚拟DOM层,然后通过虚拟DOM树的对比检查获取出最小的修改量进行对真实DOM树进行修改。虚拟DOM模式只是在DOM层的检查,所以初始渲染速度非常快。在细小修改的大量数据修改都是速度也不错的。因为只是在虚拟DOM层的计算对比,然后得出最小的修改操作对真实DOM进行修改。

脏检查

脏检查MVVM是检查数据的变化,保留对真实节点的操作。脏检查机制是对所有固定 watcher count
进行计算变化,所有在小修改变化中慢。但是在全部数据发生更新时候速度远远快于其他模式

依赖收集

数据收集每一个组件都存在自己的 viewModel 实例, 每个 viewModel
实例存在对数据监听和真实DOM树的操作、自己的数据作用域。当数据发生修改时候只会触发自身作用域下的变动。所以在细小地方进行占的优势大,但是初始渲染,和大部分数据更新时候就比较慢,因为创建大量的
viewModel 实例需要消耗的性能是一定的,所以现在大部分 MVVM
依赖收集模式框架需要的面对的问题就是如何复用之前创建的viewModel

如何进行MVVM模式的列表渲染进行优化?

在angular 和 vue 中我们可以用 :key=“index” (旧版本用使用 track-by=“index”)等方式提示框架这是一个可以复用的 viewModel 实例,框架就会知道当前viewModel 实例只是数组数据的内容发生改变,DOM结构并没有发生改变。直接根据数据里的位置进行复用修改显示数据。

性能比较

在比较性能的时候,要分清楚初始渲染、小量数据更新、大量数据更新这些不同的场合。Virtual DOM、脏检查 MVVM、数据收集 MVVM 在不同场合各有不同的表现和不同的优化需求。Virtual DOM 为了提升小量数据更新时的性能,也需要针对性的优化,比如 shouldComponentUpdate 或是 immutable data。

  • 初始渲染:Virtual DOM > 脏检查 >= 依赖收集
  • 小量数据更新:依赖收集 >> Virtual DOM + 优化 > 脏检查(无法优化) > Virtual DOM 无优化
  • 大量数据更新:脏检查 + 优化 >= 依赖收集 + 优化 > Virtual DOM(无法/无需优化)>> MVVM 无优化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杨周龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值