24 VueComponent 的 render

news2024/11/23 23:21:46

 前言 

这是最近的碰到的那个 和响应式相关的问题 特定的操作之后响应式对象不“响应“了 引起的一系列的文章 

主要记录的是 vue 的相关实现机制 

呵呵 理解本文需要 vue 的使用基础, js 的使用基础 

 测试用例

测试用例如下, 一个简单的 按钮事件的触发  

问题的调试

编译之后的 render 如下 

这里可以看到的是 最末层级 的展示节点的创建, 是作为 el-card 的一个 slot 传入的 

ElCard 模板定义如下

编译之后的 render 如下 

从以上相关的代码, 大致是可以 复现出 HelloWorld 整个 VNode 树了 

一个 div, 下面三个子节点, 一个 el-card, 一个 br, 一个 el-button

没有递归渲染

以下是 el-card 渲染的整颗树形结构

一个 div, 下层两个子节点, 一个 el-card__header, 一个 el-card__body

这里没有 el-card__header, 创建的一个 空节点 

el-card__body 下面有一个 HelloWorld.vue 传入的 TextNode 子节点

整个过程中构建页面 dom 元素的过程 

 createElm 中创建各个 dom 元素, 并添加到给定的 元素下面

一部分 textNode, commentNode 是在外面 createElm 创建的 

之所以这部分 不满足 if 条件的 页面显示为注释, 是因为 创建该节点的 vnode 使用的是 createEmptyVNode, 里面设置了 isComment 为 true 

然后在 createElm 中看到这个 vnode.isComment 为 true, 创建了注释节点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微软正在研究使 Linux 脚本更安全

导读据悉,微软正在研究使 Linux 脚本更安全 微软正在研究使 Linux 脚本更安全 在本周的 Linux 安全峰会上,systemd 的创建者 Lennart Poettering 发表了演讲,他在过去的一年中被微软雇佣,他和微软的其它工程师们正在努力提高 Lin…

Linux 下进行权限修改 chmod命令

查看权限 ls -l 文件名该命令可以查看文件的详细属性,包括文件的权限 权限含义 -rwxrwxrwx在文件系统中,user、group、others的权限是分开的,第一个rwx代表user的权限、第二个rwx代表group的文件、第三个rwx代表others的权限 字符含义值…

Storm学习笔记

1 Storm是什么 Apache Storm是一个分布式实时流式大数据处理框架。 2 计算框架对比 (1) Storm是在线处理数据方式,Mapreduce/spark是离线处理数据方式。 (2) Mapreduce数据处理特点 海量数据处理:G、T、P级都能处理 全量数据集同时处理&#xff1…

纯js实现在线文字识别,从图片中提取文本信息

当你需要将图片中的文字内容提取出来时,你可能想到了手动输入或者使用OCR技术。而当你需要进行在线文字识别时,一个纯JavaScript实现的OCR工具可能会成为你的优选方案。 纯JavaScript,使得在浏览器内部进行文字识别变得可能。 此外&#x…

chatgpt赋能python:Python文件备份:保障数据安全,高效便捷的备份方案

Python文件备份:保障数据安全,高效便捷的备份方案 在日常工作中,文件备份是保障数据安全的必要措施。Python作为一个强大的编程语言,在文件备份方面有着出色的表现。本文将重点介绍Python文件备份的相关知识。 Python文件备份的…

矿井水深度除氟装置CH-87的技术应用

今天,文章中会谈到的问题是关于煤化工废水深度处理除氟、总氮、砷等污染物工艺技术的拆解分析,用什么样的工艺技术能把矿井水中的氟、砷、总氮做到1个毫克升以下的标准符合达标排放?希望能对相关行业起到一定的帮助作用。我国是一个资源丰富的…

《安富莱嵌入式周报》第313期:搬运机器人,微软出的C语言手册,开源生物信号采集板,开源SMD回流焊,开源SDR无线电,汽车级机器人评估板

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程: DSP视频教程第12期:TI开源分享IQmath DSP源码,适用于所有Cortex…

TCP通信流程详解

目录 什么是TCP协议? 三次握手和四次挥手 TCP通信流程: socket(): bind():绑定函数 listen():监听函数 accept():和客户端建立连接 connect():客户端连接服务器函数 read()/recv():读取函数 write() /send():写入函数 close():关闭连接 为什…

第63篇:美国NSA量子注入攻击的流量特征及检测方法

Part1 前言 大家好,我是ABC_123,公众号正式更名为”希潭实验室”,敬请关注。前不久花时间研究了美国NSA的量子注入攻击手法,并在Hackingclub山东济南站技术沙龙做了分享。对于这种攻击手法部分网友嗤之以鼻,认为是老美…

Linux下的进程状态和 僵尸/孤儿进程的区别

目录 Linux进程的各种状态的表示: R状态的测验: S状态的测验: T状态的测验: 这次讲解一个新指令:kill -l t状态测验:追踪暂停 X状态:死亡状态 Z状态:僵尸状态 进程一直处于…

过孔焊盘~尺寸、间隙、通流能力

过孔焊盘 导通孔(via)焊盘尺寸 a) 外层焊盘环宽(A)要大于5mil,内层焊盘环宽(A)要大于8mil, 推荐导通孔孔径及焊盘尺寸如下: b) 推荐反焊盘大小尺寸≥过孔焊盘+20MIL。 走线与金属化孔间的最小间隙 推荐的走线距金属…

Roblox 不但不支持 Linux,还屏蔽了 Wine

导读据悉,Roblox 不但不支持 Linux,还屏蔽了 Wine。 Roblox 不但不支持 Linux,还屏蔽了 Wine 多人游戏 Roblox 没有 Linux 原生版本,但之前可以通过 Wine 在 Linux 上运行。不过其最新的反作弊软件专门屏蔽了 Wine 应用&#xff…

XuperChain共建守护者系列藏品震撼发行,最新合成玩法揭秘

5月30日上午10点,百度超级链重磅推出「XuperChain共建守护者系列」藏品。「XuperChain共建守护者徽章系列」自身具有权益,也可与共建徽章系列藏品合成新藏品,玩法多多、福利多多,等你探索! 共建守护者系列共计20款藏品…

智能集成接口:I3 ISA-95 的应用

介绍 多年来,使用基于制造运营管理 (MOM) 的应用程序的制造 IT 顾问试图说服制造商这些类型的应用的高价值。实时 MOM 解决方案是唯一一组能够精确优化工厂日常运营的 IT 应用程序,可为其可用性流程带来可创造的价值,…

《操作系统》期末客观题梳理

《操作系统》复习(1-9) 文章目录 《操作系统》复习(1-9)Ⅰ知识点概念第一章操作系统导论第二章进程描述与控制第三章处理机调度死锁第四章进程同步第五章存储器管理第六章虚拟存储器第七章输入输出系统第八章文件管理第九章磁盘存…

探索无限可能:物联网技术的未来应用引领智能化时代

⭐ 物联网技术⭐ 物联网技术的应用⭐ 物联网发展和创新挑战 当我们回顾过去几十年的科技发展,不难发现物联网技术的崛起和蓬勃发展。物联网的概念已经成为当今科技领域的热门话题,它正在以惊人的速度渗透到我们的日常生活中。从智能家居到智能城市&#…

【C++】map容器

更明确的类型重命名规则using 在C语言中typedef将一个变量提升为一种类型: typedef int * p;//p是int*类型//int Array[10];//Array是一个可装10个int类型变量的数组。typedef int Array[10];//Array是一个可装10个int类型变量的数组的类型//Array arr;…

[golang 微服务] 1.单体式架构以及微服务架构介绍

一.单体架构 在了解微服务之前首先看看单体架构,单体架构在 中小企业内部用的是非常多的,当 业务不复杂, 团队规模不大的时候,单体架构比微服务架构具有 更高的生产率,比如2017年前的淘宝都是单体架构 单体架构的程序部署在单台服务器 这种架…

计算机网络考试多选题汇总Ⅱ

https://cadyin.blog.csdn.nethttps://blog.csdn.net/qq_38639612?spm1010.2135.3001.5421 计算机网络考试多选题汇总 1、在Windows中,任务管理器的作用是() A.终止未响应的应用程序 B.终止进程的运行 C.查看系统当前的信息 …

Springboot服务端接口公网远程调试,并实现HTTP服务监听

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…