- 响应式系统基于
Object.defineProperty
,只能监听已有属性,数组和对象新增属性不响应。 - 虚拟 DOM diff 和渲染采用同步递归方式,所有更新任务一次性执行,主线程可能被长时间占用。
- 生命周期和 API 采用选项式结构(data、methods、computed、watch 等分散在各自选项)。
- 性能在中小型项目表现良好,但在大数据量或复杂场景下可能出现卡顿。
- 响应式系统升级为
Proxy
,可监听所有类型的数据变化,包括新增/删除属性和数组索引变化,性能更高。 - 虚拟 DOM diff 算法优化,渲染速度提升,支持 Fragment、Teleport、Suspense 等新特性。
- 生命周期钩子全部以
onXxx
形式暴露,结合组合式 API(Composition API),逻辑更灵活、可复用性更强。 - 支持 tree-shaking,包体积更小,按需加载更高效。
- 源码用 TypeScript 重写,类型安全,开发体验提升。
- 更现代的插件和指令 API,生态兼容性更好。
- 响应式系统升级:Proxy 替代 defineProperty,性能更高,支持所有数据类型的响应式。
- 组合式 API:setup、ref、reactive、computed、watch 等,逻辑复用和拆分更方便,类似 React Hooks。
- 性能优化:虚拟 DOM 重写,渲染速度更快,内存占用更低。
- TypeScript 支持:源码和 API 原生支持 TypeScript,类型推断更准确。
- 新特性支持:Fragment、Teleport、Suspense、多个 v-model、异步组件等。
- 更灵活的生命周期和插件机制:生命周期钩子更易组合,插件和指令 API 更现代。
- 更好的生态兼容:Pinia 状态管理、Vue Router 4 等更现代的生态工具。