24 VueComponent 的 render

news/2024/7/10 0:51:59 标签: vue, js, render

 前言 

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

主要记录的是 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.niftyadmin.cn/n/365666.html

相关文章

sql注入学习-知识点大合集

目录 (一)sql注入了解: 1.1什么是sql注入 1.2 sql注入的分类 (二)sql注入详解: 2.1.MySQL注入 2.2.1在MySQL注入中,会用到的知识 2.2.2mysql常用语句与常见 2.2.3msyql注入内容详解 2.2…

腾讯T4大牛整理的SpringBoot文档,覆盖你认知中的所有操作

SpringBoot目前的使用已经很普遍了,实际的项目中,我们需要集成各种的插件支持,不仅如此,还有很多可能我们平时不知道,但是很方便的操作。pdf里面的东西还是比较全面的。 1、关于文档 2、获得帮助 3、第一 步 4、使…

Python类的属性和方法介绍

Python类的属性和方法介绍 本文主要讲python类属性(类变量)、实例属性(实例变量);类方法、静态方法、实例方法。 【定义在类中的变量也称为属性,定义在类中的函数也称为方法。】 这些都是Python面向对象…

SpringBoot实践(四十二):常用的PostProcessor后置处理器与Aware接口

在BeanFactory的创建过程中有很多对外提供的扩展点,就是xxxPostProcessor接口和各种xxxAware接口了,在真实生产中用处极大,可以让我们自定义某些beanDefinition或者某个Bean的属性,或者我们直接拿到SpringContext容器实例化后的对…

Less基础速学 —— 嵌套、变量、注释、

关于CSS的预处理有读者了解到的就有主流的这三种:less 、sass/sacc 和 stylus,那么在使用这些CSS的预处理器,有浏览器的用法和服务器端的方法,例如使用Node来通过NPM包管理工具下载安装less在服务端来跑,那么在浏览器上…

python 背包问题:0-1背包,多重背包,数据结构,超详细模板套用和解读;数组组合问题

一、0-1背包问题: 题目:有n个物品,第i个体积为w[i],价值为v[i],每个物品最多选一个,求体积和不超过capacity时能装物品的最大价值 转移方程: dfs(i,c) max(dfs(i-1,c),dfs(i-1,c-w[i])v[i])…

【数据结构】---几分钟简单几步学会手撕链式二叉树(中)

文章目录 前言🌟一、二叉树链式结构的实现🌏1.1 二叉树叶子节点个数💫代码:💫流程图: 🌏1.2 二叉树的高度💫第一种写法(不支持):📒代码:&#x1f…

Java学习路线(14)——Map集合类

一、介绍 概念 Map集合是一种双列集合,每个元素包含两个数据。元素格式:【keyvalue】键值对元素Map又称为 “键值对集合” Map集合格式: {key1value1,key2value2,key3value3,…} 二、Map集合的特点 Map家族图 1、说明: 使用…