带你看Vue3源码: Vue.createApp究竟做了什么

本文通过调试Vue3的createApp方法,逐步揭示其执行流程。从最简单的应用创建代码开始,通过断点和单步调试,分析了createApp如何初始化参数并挂载到app对象上。在源码中,createApp内部调用了多个关键方法,如mount、_render等,实现了组件的渲染和挂载。通过这种方法,读者可以快速理解Vue3的整体执行流程,为进一步阅读源码打下基础。
摘要由CSDN通过智能技术生成

文章首发:https://juejin.cn/post/6991461000033599495

笔者在上一篇文章《debug一下,你就学会高效阅读开源项目代码~》中以 Vue3 源码调试配置为案例,给大家介绍了调试的基本配置以及强调了其在查看源码过程中的重要性。本文将使用调试的技巧,在不需要详细了解完整代码实现的前提下,快速了解 Vue3 的执行流程。

最简单的代码

众所周知,调用 Vue.createApp 方法便创建了一个 Vue3 应用,本文从这个方法入手,一步一步剖析该方法在源码中的实现,从而使得大家能够了解 Vue3 整体的执行流程。

首先,在源码目录创建 packages/vue/examples/hello.html 文件:

<script src="../dist/vue.global.js"></script>

<div id="demo">{
  {text}}</div>

<script>
  debugger
  Vue.createApp({
     
    data: () => ({
     
      text: 'hello world'
    })
  }).mount('#demo')
</script>

代码功能非常简单:在页面中打印 hello world 字符串。这里在执行 Vue.createApp 前插入 debugger 代码,使得代码执行在 debugger 处暂停下来。

调试开始

这里还是贴一下调试的配置,如需更详细的了解调试原理和流程,请访问笔者上一篇文章:《debug一下,你就学会高效阅读开源项目代码~》。

{
   
  "version": "0.2.0",
  "configurations": [
    {
   
      "type": "chrome",
      "request": "launch",
      "name": "Launch hello",
      "url": "http://localhost:8080",
      "webRoot": "${workspaceFolder}",
      "file": "${workspaceFolder}/packages/vue/examples/hello.html"
    }
  ]
}

Untitled.gif

点击调试按钮,程序在 debugger 处暂停,然后执行到 Vue.createApp 处单步进入,断点进入到 packages/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值