作者汇编汇编后,编译了汇编部分。
对于今天准备的细节,解析分析后,VUE的其他两个重要部分产生了震惊。
让我们首先看一下有关Vue这一部分的评论:
粗略的含义是,无需重新创建一个新节点并跳过补丁过程。
再次重申Vue的工作流程。
作者花了很长的时间写作分析,而今天提出的源代码分析约为2和3。
优化的优化部分在补丁过程中直接忽略。该模块如下:
首先,我们必须知道选项。统计学实际上是一个字符串:
GenStaticscached的源代码是:
1. genstaticscached是缓存的返回,即cachedfn,所以
那是
2.因为起头不存在缓存,它将执行
fn函数是传递的函数:即执行实际上是:
在替换选项中。统计,获取:
因此:最终结果是:
这个功能是什么?源代码如下:
实际上很容易发现:
字符串,它将成为一个对象:
返回的最后一个功能实际上是:
的确是确定它是否是静态键。SO称为静态键是上诉的这些属性。此功能将在下面使用。
此功能非常简单。实际上,是判断它是否是平台标签。Web平台是普通标签和SVG标签。
该函数实际上是一个辅助函数,也就是说,AST树的每个节点是否是静态节点。特定的判断方法需要通过源代码分析。
首先从宏观的角度考虑静态标准。
需要满足以下两个要求:
两者都是必不可少的,让我们一一分析他们:
首先查看第一点,iStatic源代码如下:
第一点中的SO列表要求实际上是此功能的返回部分。
再次看第二点
换句话说,当满足所有要求时已经满足以上所有点时,它仍然只是基本条件。
本质
Markstaticroots功能主要使用两个符号对满足要求的所有节点:
而且,此徽标确实在下一个大阶段代码生成中使用。
非常简单,只要节点的祖先节点所在,并且它具有静态或一旦属性,它就会被标记。
再次看静态,其条件分为两部分,
条件一种意味着满足静态并具有儿童节点。
条件的两个均值。条件一个中只有一个孩子,并且消除了动态节点的情况。例如:
在这种情况下,DIV不能被视为静态。
我相信他们的心中会怀疑,为什么?
我们将在稍后生成的代码中给出答案。
1.父节点是静态的。孩子必须是静态的。子节点可能不是静态的。父节点必须静止。
2.真正有效的是静态和静态属性。
逐渐开出来,生成字符串,短函数-Type字符串以准备执行后来的渲染。本质是对象形式向对象形式的过渡到短函数表单。
本质上,我们将从一棵震惊的树上
成为函数的树节点变成函数:
那么,总共有什么简短功能?
关于简短功能,它实际上是在rendermixin中定义的,让我们看看。
我们需要理解执行的短函数是获得另一个树,即vnode树。因此,这些短函数要么创建一些vnode节点,要么为VNode节点创建一些属性。
因此,我们的短函数格式主要是
第一个参数是标签名称,第二个是属性,第三个参数是子函数,即子节点。
让我们看一下主要功能。
主过程由生成函数启动。
让我们先看看我们的回报内容
您可以看到总共两个属性渲染和静态RenderFN。
首先,首先将其标记为Optimize标记的静态和静态,而不会放置在代码中,而是在静态RenderFN上。特定的游戏玩法将在稍后进行详细说明。
在功能方面,只有两个过程。我在上述代码上给了两个模块的注释。
让我们看一下第一个区块的具体情况:
实际上,上面的注释不准确。状态具有许多功能。CodeGenstate本身就是一类。细节如下:
应该注意的是,指令实际上仅通过生成短函数来生成。简短的处理是在渲染函数和补丁中完成的。如果您不熟悉VUE源代码的周期,请阅读作者的解析思想。
查看第二个模块:
可以看出,AST的底部是一个短函数,否则它将输入核心函数基因。
基因是CodeGen过程中最重要的函数,它处理大多数短函数。
查看源代码:
IFELSE分支分为8个病例,让我们一一分析。
(1)Genstatic首先看一下判断条件
突然没有,没有,原始优化部分的静态在这个地方进行了处理。在我们说之前,静态的节点在斑块的过程中,仅用于第一个渲染,而后来的比较被完全忽略了。
我们需要考虑两个问题
首先查看如何渲染静态节点,首先观看Genstatic代码:
state.staticrenderfns以数组的形式保存静态渲染函数。简短的功能是真正执行的。根据传输索引,需要呈现数组。
请参阅_M短函数的原始函数是渲染的:
呈现的主要内容是生成vnode并点击静态标记。SO标记为:
当然,这些参数将在补丁链接中起相应的角色。不要在这里重复。作者的后续源分析模块将具有补丁源分析。
2)Genonce情况主要分为3种类型:
因此,Genonce的基础是Genstatic,但是当持有V-IF标签时,您必须转到Genif。这是因为if形式位于V-IF标签的ifconditions数组中。根据特定条件,根据特定条件,渲染目标模块没有渲染的情况
至于静态,情况更加复杂。
我们必须知道随后的Vue阵列补充。