aurora blog
  • JS

    • 基本汇总
    • Date时间
    • Array方法
    • String 方法
    • Object方法
    • RegExp正则
    • Es6 新特性等
    • Event-Loop
    • Http and Https
    • for in和for of区别
    • Web Worker
    • Promise && async
    • 堆内存 & 栈内存
    • JS设计模式探索
    • npm & yarn
    • Fetch和Axios的区别
    • 学习及面试问题整理
    • URL 输入到页面加载过程
    • 跨域&nginx本地项目代理
  • FE框架

    • react

      • 基本用法
      • react生命周期
      • hooks 16.8版本后
      • Route原理
      • Redux源码解析
      • React16 Fiber
      • React-VirtualDOM
      • React事件委托机制
    • vue

      • vue 基本用法
      • vue 生命周期
      • VirtualDOM
      • vue 事件委托
      • vue 架构
      • vue 状态管理
      • 问题等
    • React-Native

      • React-Native 基本用法
    • 微前端

      • 遇到的问题
    • 鸿蒙 harmony

      • harmony 基础
  • 构建工具

    • webpack

      • Webpack配置详解
      • Webpack的使用
      • Babel-polyfill
      • webpack面试题
    • vite

      • vite基本配置
  • Typescript

    • Typescript详解
  • Servers

    • Nodejs
    • Nginx
  • Git命令

    • git常用规范
  • 数据库

    • mongodb
    • mongodb
  • Other

    • Jenkins自动化部署

Vue2 与 Vue3 架构原理及升级优势

  • Vue2 架构原理
  • Vue3 架构原理
  • Vue3 对比 Vue2 的优势与升级点

Vue2 架构原理

  • 响应式系统基于 Object.defineProperty,只能监听已有属性,数组和对象新增属性不响应。
  • 虚拟 DOM diff 和渲染采用同步递归方式,所有更新任务一次性执行,主线程可能被长时间占用。
  • 生命周期和 API 采用选项式结构(data、methods、computed、watch 等分散在各自选项)。
  • 性能在中小型项目表现良好,但在大数据量或复杂场景下可能出现卡顿。

Vue3 架构原理

  • 响应式系统升级为 Proxy,可监听所有类型的数据变化,包括新增/删除属性和数组索引变化,性能更高。
  • 虚拟 DOM diff 算法优化,渲染速度提升,支持 Fragment、Teleport、Suspense 等新特性。
  • 生命周期钩子全部以 onXxx 形式暴露,结合组合式 API(Composition API),逻辑更灵活、可复用性更强。
  • 支持 tree-shaking,包体积更小,按需加载更高效。
  • 源码用 TypeScript 重写,类型安全,开发体验提升。
  • 更现代的插件和指令 API,生态兼容性更好。

Vue3 对比 Vue2 的优势与升级点

  • 响应式系统升级:Proxy 替代 defineProperty,性能更高,支持所有数据类型的响应式。
  • 组合式 API:setup、ref、reactive、computed、watch 等,逻辑复用和拆分更方便,类似 React Hooks。
  • 性能优化:虚拟 DOM 重写,渲染速度更快,内存占用更低。
  • TypeScript 支持:源码和 API 原生支持 TypeScript,类型推断更准确。
  • 新特性支持:Fragment、Teleport、Suspense、多个 v-model、异步组件等。
  • 更灵活的生命周期和插件机制:生命周期钩子更易组合,插件和指令 API 更现代。
  • 更好的生态兼容:Pinia 状态管理、Vue Router 4 等更现代的生态工具。
最近更新:: 2025/8/7 15:46
Contributors: liyulai
Prev
vue 事件委托
Next
vue 状态管理