前端/移动开发面试题更新 2026-08-05

Vue 实例从创建到挂载到 DOM,这个过程中 Vue 内部具体做了哪些操作?

前端/移动开发技术原理Vue

考察说明

考察对 Vue 实例创建与挂载生命周期的整体流程理解,包括模板编译、响应式系统和 DOM 更新机制。

回答思路

  1. 【回答框架 1】Vue 实例挂载过程从 new Vue() 开始,先进行初始化,包括合并选项、初始化生命周期、事件、渲染函数等,并调用 beforeCreate 和 created 钩子。
  2. 【回答框架 2】在挂载阶段,Vue 会检查是否有 template 或 render 函数。若有 template,则经过编译生成 render 函数。如果没有 render 函数且使用运行时版本,则无法编译模板。
  3. 【回答框架 3】挂载的核心是执行 mountComponent,它创建渲染 watcher,负责依赖收集和触发更新。首次渲染时,调用 render 函数生成 vnode,再通过 patch 将 vnode 转换为真实 DOM 并插入页面。
  4. 【回答框架 4】挂载完成后会触发 mounted 钩子,此时实例的 $el 属性指向真实 DOM,可以访问到挂载后的状态。
  5. 【关键点 1】挂载前会初始化实例,执行 beforeCreate 和 created 钩子。
  6. 【关键点 2】模板会编译成 render 函数,若直接提供 render 函数则跳过编译。
  7. 【关键点 3】首次渲染通过渲染 watcher 建立依赖收集并生成 vnode,然后 patch 到真实 DOM。
  8. 【关键点 4】挂载完成后触发 mounted 钩子,$el 绑定真实 DOM。
  9. 【易错点 1】不要认为 created 阶段 DOM 已经渲染,此时 $el 未生成。
  10. 【易错点 2】不要混淆运行时版本和完整版,完整版才包含模板编译器。