
获得徽章 7
- 寻找散落的Mar力
️
2024.08.28-09.28
活动期间,使用豆包 MarsCode 编程助手或邀请新用户体验,即可积攒火星值兑换 4090 显卡、11g 金条等奖品评论点赞 - #每日快讯# Vue3 Diff算法和 Vue2 的区别
我们知道在数据变更触发页面重新渲染,会生成虚拟 DOM 并进行 patch 过程,这一过程在 Vue3 中的优化有如下
编译阶段的优化:
事件缓存:将事件缓存(如: @click),可以理解为变成静态的了
静态提升:第一次创建静态节点时保存,后续直接复用
添加静态标记:给节点添加静态标记,以优化 Diff 过程
由于编译阶段的优化,除了能更快的生成虚拟 DOM 以外,还使得 Diff 时可以跳过"永远不会变化的节点",Diff 优化如下
Vue2 是全量 Diff,Vue3 是静态标记 + 非全量 Diff
使用最长递增子序列优化了对比流程
根据尤大公布的数据就是 Vue3 update 性能提升了 1.3~2 倍展开评论点赞