Vue在实例化组件时候会生成虚拟DOM,Vue先判断是否有render函数,如果有的话调用render生成虚拟DOM;如果没有render函数,则获取template选项,template选项可以是选择器、模版字符串、dom元素,Vue根据template选项进行模板编译;如果没有template,则获取el以及其子内容作为模版。
模板编译有三个步骤
1. 将模板解析为AST。(Abstract Syntax Tree,抽象语法树)。
2. 遍历AST标记静态节点。
3. 使用AST生成渲染函数。