热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue源码调试vue初始化过程

给四个导出vue的文件上面打断点以下都是举例关键点无调试过程可参照例子自行调试srccoreinstanceindex通过在右侧watch中点击加号然后输入Vue来监听断点执行

给四个导出vue的文件上面打断点

以下都是举例关键点 无调试过程 可参照例子自行调试

src/core/instance/index

在这里插入图片描述

  • 通过在右侧watch中点击加号 然后输入Vue 来监听断点执行过程中vue的变化
  • 当执行initMixin的时候 右侧vue中如下所示
    在这里插入图片描述
  • 当执行到stateMixin的时候可以看到Vue的原型上多了个_init函数
    在这里插入图片描述

src/core/index

在这里插入图片描述

  • 给vue的构造函数中增加了一个config属性,这个属性中都是与平台相关的成员
  • 给vue.util中增加了一些方法,这些方法不建议使用 更多在vue源码内部使用的
  • 增加了静态的方法 set、delete、nextTick
  • 初始化了observable
  • 初始化了options并给其__proto__设置为null,然后在options对象中追加了components/directives/filters这几个成员,存储全局的组件、指令及过滤器,以及_base(存储vue的构造函数)
    -在vue的构造函数中 注册了use mixin extend这几个函数及component、directive、filter这几个函数,当我们调用这几个函数的时候他们会把对应的组件、指令、过滤器放在options中对应的成员中
    在这里插入图片描述

src/platforms/web/runtime/index

在这里插入图片描述

src/platforms/web/entry-runtime-with-compiler


  • 重写了上个文件中定义的mount方法,在mount方法,在mount,mount中新增了把我们模板编译为render函数的功能
  • 执行 到最后又给Vue构造函数上面增加了compile方法,这个方法的作用是让我们手工把模板转成render函数
    在这里插入图片描述

推荐阅读
  • Nagios可视化插件开发指南 —— 配置详解
    本文详细介绍了Nagios监控系统的配置过程,包括数据库的选择与安装、Nagios插件的安装及配置文件的解析。同时,针对常见的配置错误提供了具体的解决方法。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • Node.js模块化的优势及实践
    本文探讨Node.js模块化的重要性和具体实现方式,包括其带来的代码复用性增强、可维护性提升、以及如何有效避免命名冲突等问题。 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文介绍了如何在Spring框架中配置和使用定时任务,包括初始化配置和动态启动定时器的方法。通过示例代码展示了如何利用Spring的TaskScheduler接口来创建和管理定时任务。 ... [详细]
  • 本文详细介绍了如何通过配置 Chrome 和 VS Code 来实现对 Vue 项目的高效调试。步骤包括启用 Chrome 的远程调试功能、安装 VS Code 插件以及正确配置 launch.json 文件。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 本文探讨了 Boost 库中的 Program Options 组件,这是一个强大的工具,用于解析命令行参数和配置文件。文章介绍了如何正确设置和使用该组件,包括处理复杂选项和负数值的方法。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 如何更换Anaconda和pip的国内镜像源
    本文详细介绍了如何通过国内多个知名镜像站(如北京外国语大学、中国科学技术大学、阿里巴巴等)更换Anaconda和pip的源,以提高软件包的下载速度和安装效率。 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
  • 本文探讨了Web API 2中特性的路由机制,特别是如何利用它来构建RESTful风格的URI。文章不仅介绍了基本的特性路由使用方法,还详细说明了如何通过特性路由进行API版本控制、HTTP方法的指定、路由前缀的应用以及路由约束的设置。 ... [详细]
author-avatar
手机用户2502937805
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有