我公司的前端小组已经介绍了VUE源代码学习组。前线和几个月后的合同学习使对Vue和一般框架上轮廓模糊的小组成员进行了模糊。现在,它进入了第二阶段:分类。
我们将组分为四个部分,VUE也分为三个主要模块:数据绑定,从模板到vnode,vnode,vnode到dom to dom to patch。
作者被分配给组到VNode零件的模板。获得它后,我觉得内容更多。首先,根据源代码将内容分为两个小部分:解析和渲染过程。
此外,古代人:士兵和马匹没有被移动,首先是谷物和草。作者打算首先介绍思想和思想,然后到达一些精美的分支。
本文准备成为解析思想的一部分。
我们都知道,当您使用VUE时,我们将自定义样式按几种方式使用::
生成vnode作为vdom树
生成的vdom树最终在补丁过程中用于生成真实的DOM节点。
因此,我们汇编的最终目的是获得:
该表格大致如下图所示:
无论每个属性的作用如何,我们都已经知道我们的目标是什么。因此,您需要知道的是起点和过程。
在正常情况下,如果我们这样初始化:
然后,我们的初始化状态是一串模板字符串。
当然,仍然有很多写作方法来初始化字符串。例如:
因此,我们的过渡过程来自从中获得的过程。
但是,值得一提的是,从模板到vdom的VUE过程不是直接的过程。这可能是因为vnode和您的本机属性之间的差距太大了,并且不容易编译成VNODE直接。第二个是考虑性能优化和其他方面。
因此,VUE的汇编过程实际上分为三个过程:
对应于这三个过程:
该过程大致如下所示:
1)解析解释首先需要了解astelement的哪些属性包括com.compiler.js在vue源代码流文件中可以找到astelement模型
流程图大致如下:
有很多细节。如果您有兴趣,请注意我们的动态,我们将在下一期中给出详细的过程说明。请单击此处了解更多信息
2)优化意识形态解释。我们给出了上面的详细属性,其中两个称为静态和静态。要在渲染过程中采取缓慢的方式,只有一次。
3)代码生成对此过程的解释尚未生成VNODE,但是生成了执行函数,并且该执行的执行如下。格式如下:
我们强调,这次直接从震惊到另一个字符串。上面的估件是树状的结构。
然后,在此过程中,基本上是一个震撼对应于一个短函数。最基本的短函数是Createlement,即_C。最终树结构将执行功能处理函数如下:
可以清楚地看出,最终字符串仍然是一个,以函数形式显示的树状树,所有属性都已从创建元素的第二个参数中拉开。
这是简短功能的简单说明:一句话总结了代码生成的作用是:
生成Vnode的前部工作,拉开Astelement的所有属性,然后形成一个短函数链。
短函数大致对应如下:
4)渲染函数。此过程是直接执行的,并且作为节点作为虚拟DOM树的VNode。详细信息包括组件的处理。将有一个单独的部分要介绍。在此处显示vnode的格式。
1.编译四个主要进程解析,优化,代码,渲染。
2.用户定义的渲染实际上忽略了前三个步骤和自定义方法。
3. Vdom最终基于Vnode作为树状结构。在补丁过程中,它将与新的和旧的vdom进行比较,以确定需要更新或添加哪个DOM。