试题
考点

js语言和框架-vue.js-vue重排与重绘-diff

面5笔5

vue2 和 vue3 diff 算法的区别

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

vue2是全量进行diff,而vue3使用了静态标记,只对打标记的节点进行diff

vue2中的虚拟dom是进行全量的对比,在运行时会对所有节点生成一个虚拟节点树,当页面数据发生变更好,会遍历判断虚拟dom所有节点(包括一些不会变化的节点)有没有发生变化;vue3在diff算法中相比vue2增加了静态标记, 在模版编译时,编译器会在动态标签末尾加上 /* Text*/ PatchFlag。也就是在生成VNode的时候,同时打上标记,patch 过程中就会判断这个标记来 Diff 优化流程,跳过一些静态节点对比

评论
暂无评论

加载更多