返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue源码之首次渲染过程详解
  • 557
分享到

vue源码之首次渲染过程详解

2024-04-02 19:04:59 557人浏览 薄情痞子
摘要

目录首次渲染init方法内部$mount内部 - 编译版本内部逻辑$mount内部 - 运行时版本内部逻辑(最终执行) runtime/index中的 $mount方法core/in

首次渲染

src/core/instance/index.js 中的 this._init方法

在这里插入图片描述

init方法内部

在这里插入图片描述
在这里插入图片描述

$mount内部 - 编译版本内部逻辑

在这里插入图片描述

$mount内部 - 运行时版本内部逻辑(最终执行) runtime/index中的 $mount方法

进入runtime/index中的$mount方法可以看到最终调用了mountComponent函数来渲染dom

core/instance/lifecycle 中的mountComponent

在这里插入图片描述

src/core/observer/watcher

在这里插入图片描述

在这里插入图片描述

总结

首次渲染过程

  • Vue初始化 实例成员 静态成员
  • new Vue()
  • this._init()
  • vm.$mount() - src/platfORMs/WEB/entry-runtime-with-compiler.js
    • 如果没有传递render,把模版编译成render函数
    • compileToFunctions()生成render()渲染函数
    • options.render = render
  • vm.$mount() runtime/index中定义的 $mount 最终调用了mountComponent函数
  • mountComponent(this,el) - src/core/instance/lifecycle.js
    • 判断是否有render选项,如果没有但是传入了模版,并且当前是开发环境的话会发送警告
    • 触发beforeMount
    • 定义 updateComponent
    • 创建watcher实例
    • 触发mounted
    • return vm
  • watcher.get()
    • 创建完watcher之后会调用一次get
    • 调用updateComponent函数
    • 调用 vm._render函数创建Vnode
      • 调用render.call(vm._renderProxy, vm.$createElement)
      • 调用实例化时vue传入的render 函数
      • 或者编译template生成的render
      • 返回vnode
    • 调用vm._update内部调用vm.__patch__方法挂载真实dom 记录 vm.$el

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!      

--结束END--

本文标题: vue源码之首次渲染过程详解

本文链接: https://lsjlt.com/news/138520.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue源码之首次渲染过程详解
    目录首次渲染init方法内部$mount内部 - 编译版本内部逻辑$mount内部 - 运行时版本内部逻辑(最终执行) runtime/index中的 $mount方法core/in...
    99+
    2024-04-02
  • 浅谈vue首次渲染全过程
    目录1、vue初始化vue入口文件完整版和运行时版本的区别1.1、src/core/instace/index.js1.2、src/core/index.js1.3、src/plat...
    99+
    2024-04-02
  • Vue的列表之渲染,排序,过滤详解
    目录1. 列表(渲染、排序、过滤)1.1 条件渲染指令1.1.1 v-show1.1.2 v-if1.1.3 v-if和v-show的小案例1.1.4 v-for(key的原理)1....
    99+
    2024-04-02
  • Vue组件的渲染流程详细讲解
    目录引言与例子举一个工作中能用到的例子:实现extend执行流程1. 注册流程(以Vue.component()祖册为例子):2. 执行流程3. 渲染流程总结注: 本文目的是通过源码...
    99+
    2024-04-02
  • iOS中图片的解压缩到渲染过程详解
    前言 在移动app开发过程中,图片往往是不可或缺的资源。从磁盘上加载一张图片,到显示到屏幕上,中间经过了一些复杂的过程,其中非常重要的一步就是对图片的解压缩。下面来一起看看详细的介绍...
    99+
    2022-05-30
    ios 解压缩 渲染
  • Vue渲染器设计实现流程详细讲解
    目录渲染器+响应系统渲染器基本原理DIY 渲染器渲染器+响应系统 最简渲染函数 使用以下函数渲染静态字符串或者动态拼接内容 // 渲染函数 function renderer(dom...
    99+
    2023-01-03
    Vue渲染器 Vue渲染器设计
  • MySql8.023安装过程图文详解(首次安装)
    首先下载安装包Mysql官网下载地址,Mysql是开源的,所以直接下载就行了。 这是下载步骤: 然后选择: 因为个人使用原因,我选择了这个: 下载之后,解压下载得到的安装包放在...
    99+
    2024-04-02
  • Vue之vue.$set()方法源码案例详解
    在使用vue开发项目的过程中,经常会遇到这样的问题:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更...
    99+
    2024-04-02
  • vue 绑定对象,数组之数据无法动态渲染案例详解
    项目场景: 黑马vue项目管理实战,获取商品分类,展开栏的标签页中修改修改数据属性 问题描述: 在本该点击+new tag这个标签页时弹出一个input框让用户输入需要添加的属性 ...
    99+
    2024-04-02
  • Vue源码分析之虚拟DOM详解
    为什么需要虚拟dom? 虚拟DOM就是为了解决浏览器性能问题而被设计出来的。例如,若一次操作中有10次更新DOM的动作,虚拟DOM不会立即操作DOM,而是将这10次更新的diff内...
    99+
    2024-04-02
  • Win8.1系统安装后首次设置指导教程全过程详解
    Windows 8.1操作系统安装后如何进行首次设置?下面就由小编一步步来教你吧! 操作步骤: 1. 系统将提示您选择背景色。如果是全新安装,而不是升级的话,系统还会要求您输入计算机名称。(默认idea PC) 2. ...
    99+
    2023-06-03
    Win8.1 安装 设置 指导 系统 教程
  • Vue源码之rollup环境搭建步骤详解
    目录搭建环境建立rollup配置文件创建入口文件打包前准备打包测试一下搭建环境 第一步 进行初始化,在终端输入npm init -y生成package.json文件,可以记住所有开发...
    99+
    2024-04-02
  • Redis源码环境构建过程详解
    Redis源码环境构建 ​ 近日,蒋德钧新上了一门Redis源码剖析的课程,应好友沈架构师的邀请,又重拾起了Redis源码学习。不过作为正经的JAVA工程师,大概在大学毕...
    99+
    2024-04-02
  • Java并发编程之ConcurrentLinkedQueue源码详解
    目录一、ConcurrentLinkedQueue介绍二、构造方法三、入队 四、出队五、总结一、ConcurrentLinkedQueue介绍 并编程中,一般需要用到安全的...
    99+
    2024-04-02
  • Spring IOC源码之bean的注册过程讲解
    目录BeanDefition加载注册过程进入obtainFreshBeanFactory方法​进入AbstractRefreshableApplicationContex...
    99+
    2024-04-02
  • 源码安装apache脚本部署过程详解
    目录源码安装apache脚本部署源码安装apache脚本部署 [root@localhost ~]# ls anaconda-ks.cfg httpd.tar.xz [root@localhost ~]# tar xf...
    99+
    2024-04-02
  • Hadoop源码分析二安装配置过程详解
    目录1、 创建用户2、 安装jdk3、 修改hosts4、 配置ssh免密登录5、 安装zookeeper解压:修改配置文件修改内容如下:配置环境变量启动6、 安装hadoop对于三...
    99+
    2024-04-02
  • Sentinel源码解析入口类和SlotChain构建过程详解
    目录1. 测试用例1.1 流控测试2. 注解版源码分析2.1 默认Context创建2.2 查找并创建SlotChain2.2.1 创建slotChainBuilder2.2.2 s...
    99+
    2024-04-02
  • Dubbo源码解析之SPI(一):扩展类的加载过程
    Dubbo是一款开源的、高性能且轻量级的Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册和发现。Dubbo最早是阿里公司内部的RPC框架,于 2011 年开源,之后迅速成为国内该类开源...
    99+
    2023-06-05
  • android编程之XML文件解析方法详解(附源码)
    本文实例讲述了android编程之XML文件解析方法。分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SA...
    99+
    2022-06-06
    xml文件 XML 方法 源码 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作