compile主要做的事情是解析模板指令,将模板中的变量替换成数据,然后初始化渲染页面视图,简而言之,就是先转化成AST树,再得到的render函数返回VNode(Vue的虚拟DOM节点)
详情步骤:**
首先,通过compile编译器把template编译成AST语法树,compile是createCompiler的返回值,createCompiler是用以创建编译器的。另外compile还负责合并option。
然后,AST会经过generate(将AST语法树转化成render funtion字符串的过程)得到render函数,render的返回值是VNode,VNode是Vue的虚拟DOM节点,里面有(标签名、子节点、文本等等)
- 首先compile编译器
- 通过pase方法将我们传入的template中的内容,转换为AST语法树
- optimize对当前抽象语法树进行优化,标识出静态节点
- generate将我们的抽象语法树,转换为对应的render方法的字符串
- 返回虚拟DOM