Vue 3 与 Vue 2 有什么不同?

比较 Vue 3 和 Vue 2 的主要区别,包括性能优化、Composition API 等。

Vue 中等 框架 版本 版本差异

Vue 3 相比 Vue 2 进行了全面的升级与优化,主要差异体现在以下方面:

1. 性能优化

  • Vue 3 使用 基于 Proxy 的响应式系统, 取代 Vue 2 的 Object.defineProperty. 这支持 直接检测对象的动态属性变更, 无需 额外方法如 Vue. set.
  • 引入了 编译优化机制, 如 静态节点提升事件侦听器缓存, 大幅提升渲染速度 1.3~2 倍, SSR 性能也提升 2~3 倍.
  • 借助 Tree-shaking, 核心代码体积减少约 40%, 运行更高效.

2. Composition API

  • Vue 3 的 Composition API( e. g. setup(), ref, reactive) 取代了 Vue 2 的 Options API( e. g. data, methods). 它将 相关逻辑代码整合在一起, 解决了 Vue 2 的 代码可维护性差和复用困难的问题 .
    // Vue 3 Composition API
    <script setup>
    import { ref } from 'vue';
    const count = ref(0);
    const increment = () => count.value++;
    </script>
    
  • 复杂组件场景 提供更 清晰的代码结构.

3. TypeScript 集成

  • Vue 3 完全基于 TypeScript 重写, 提供 完整类型推断和检查. Vue 2 虽支持 TypeScript, 但需额外设置与声明文件的辅助.

4. API 与组件框架改进

  • 生命周期钩子重命名: beforeDestroy 变 beforeUnmount, destroyed 变 unmounted.
  • 移除了过时API like Vue.extend, 提供 新的全局API模式.
  • 增加了 内置组件 like Teleport(渲染任意位置内容) 和 Suspense(处理 异步加载.