news 2026/6/23 5:53:45

Vue-实例从 createApp 到真实 DOM 的挂载全历程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue-实例从 createApp 到真实 DOM 的挂载全历程

前言
无论是 Vue 2 的new Vue()还是 Vue 3 的createApp(),将组件配置转化为页面上可见的真实 DOM,中间经历了一系列复杂的转换。理解这一过程,不仅能帮我们更好地掌握生命周期,更是理解响应式原理的基础。
一、 挂载过程总览
Vue 实例的挂载过程,本质上是将组件配置转化为虚拟 DOM,最终映射为真实 DOM,并建立响应式双向绑定的过程。


二、 核心挂载步骤详解
1. 初始化阶段 (Initialization)
在 Vue 3 中,通过createApp开始。

  • 创建实例:根据传入的根组件配置创建一个应用上下文(vue实例),接着进行数据初始化。
  • 初始化数据:这是最关键的一步。Vue 会依次初始化Props、Methods、Setup (Vue 3)、Mixins、Data、Computed
    • 校验:Vue 会校验propsdata中的变量名是否重复。
    • 响应式绑定:Vue 3 使用Proxy(Vue 2 使用Object.defineProperty)对数据进行劫持,建立依赖收集机制。

2. 模板编译阶段 (Template Compile)
这一步将“肉眼可见”的 HTML 模板转化为机器高效执行的 JavaScript 代码。

  • 解析 (Parser):将template字符串解析为抽象语法树 (AST)
  • 转换 (Transformer):对 AST 进行静态提升、补丁标记(Patch Flags)等优化。
  • 生成 (Generator):将 AST 转换成render 渲染函数字符串。

3. 生成虚拟 DOM (VNode)

  • Vue 调用生成的render函数。
  • render函数根据Template执行后会返回一个虚拟 DOM 树 (Virtual DOM)。它是对真实 DOM 的一种轻量级 JavaScript 对象描述。

4. 挂载与 Patch (Mounting & Patching)

  • 调用 Mount:执行组件的挂载方法。
  • 渲染真实 DOM:渲染器(Renderer)遍历虚拟 DOM 树,递归创建真实的 HTML 元素。
  • 更新页面:将生成的真实 DOM 插入到指定的容器(如#app)中,替换掉原本的内容。

5. 完成挂载

  • 一旦真实 DOM 渲染完毕,Vue 会触发mounted(组合式 API 为onMounted)生命周期钩子,此时开发者可以安全地访问 DOM 节点。

三、 Vue 3 挂载示例
在 Vue 3 项目中,挂载通常发生在main.ts
// main.ts import { createApp } from 'vue' import App from './App.vue' // 1. 创建应用实例 const app = createApp(App) // 2. 挂载到指定 DOM 容器 // 挂载过程中会执行编译、数据拦截、生成 VNode 并渲染 app.mount('#app')


四、 总结

  1. AST 与 VNode 的区别
  • AST:是对 HTML 语法的描述,用于代码编译阶段。
  • VNode:是对 DOM 节点的描述,用于运行时渲染和 Diff 算法。
  1. 双向绑定的建立时机:在data初始化阶段,Vue 就已经通过响应式 API 拦截了数据。当render函数读取数据时,会自动触发依赖收集。
  2. 重新挂载:如果响应式数据发生变化,Vue 不会重新走一遍完整的挂载过程,而是通过Diff 算法对比新旧 VNode,仅更新发生变化的真实 DOM 部分。



原文: https://juejin.cn/post/76018118
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 21:10:38

<span class=“js_title_inner“>让逻辑「漂」起来:阿里妈妈广告引擎Serverless(GaaS)架构揭秘</span>

一、“通” 是阿里妈妈效果广告过去几年的核心主题之一 2021年之前,阿里妈妈广告业务是搜索广告、展示广告、直播广告等多驾马车各自发展的局面。2021年阿里妈妈推出了「万相台」,一定程度实现了客户一笔钱可投放到阿里妈妈的所有土地上。2024年8月进一步…

作者头像 李华
网站建设 2026/6/17 16:41:07

开题报告 生活梦想酒店客房管理系统设计与开发

目录 研究背景与意义系统功能模块技术实现方案预期成果与创新点应用前景 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 研究背景与意义 生活梦想酒店客房管理系统旨在提升酒店运营效率,优化…

作者头像 李华
网站建设 2026/6/21 18:48:47

云服务器:渗透日常的数字赋能者,连接个人与产业的无形桥梁​

当你在手机上备份旅行照片、用在线文档同步工作进度、通过直播软件观看远隔千里的演唱会时,云服务器正以一种 “隐形却不可或缺” 的姿态,渗透到生活与工作的每一个角落。它不再是科技行业的专属术语,而是像水电一样普惠的数字基础设施&#…

作者头像 李华
网站建设 2026/6/21 10:04:32

云平台云应用运维实施技术方案

建设目标 为企业、应用开发者、维护者提供一站式服务提供本地化实施及技术支持服务能力提供全面的解决方案咨询及实施能力 云计算应用集成解决方案咨询及集成实施能力云计算系统集成解决方案咨询及集成实施能力云计算数据集成解决方案咨询及集成实施能力云主机平台、私有云、混…

作者头像 李华
网站建设 2026/6/22 22:17:31

什么是RS485转LoRa一对多通讯?一篇看懂物联网设备无线组网逻辑

微型LoRa数传模块凭借小体积、低功耗、远距离、抗干扰的核心优势,主要适配低速率、小数据量、电池供电、布线困难的物联网场景,以下是其细分且具体的应用方向: 一、 智慧工业场景 1.设备状态监测:嵌入电机、泵体、机床等设备的…

作者头像 李华