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