Vue3 做了哪些编译期/运行时性能优化?
编译期(模板编译):
- PatchFlag:编译时给动态节点打标记(如
TEXT、CLASS),diff 时只比对打了标记的部分,跳过静态节点 - 静态提升(hoistStatic):把静态节点/属性提到渲染函数外,避免每次重建
- 缓存事件处理函数:
@click等编译为缓存的_cache,减少内联函数创建 - Block Tree:以
v-if/v-for等结构指令为 block,快速跳过不变区块
运行时:Proxy 懒代理、更高效的组件实例结构、Tree-shaking 友好(API 按需引入)。
效果:同等场景下 Vue3 比 Vue2 运行时性能约快 1.2~2 倍,内存占用更低。