1.为什么要使用抽象语法树
在开发Vue的时候编译器会将模板语法编译成正常的HTML语法,而直接编译的时候是非常困难的,因此此时会借助AST抽象语法树进行周转,进而变为正常的HTML语法,使编译工作变得更加简单。
抽象语法树实际上就是一个对象。vue将模板语法视为普通的字符串,并将其解析为JS对象。
例:
2.抽象语法树与虚拟DOM之间的关系
抽象语法树的终点是渲染函数(h函数)。
渲染函数(h函数),它既是AST的产物,也是vnode(虚拟节点)的起源。h函数里面是不含指令的。
抽象语法树不会进行diff算法,并且抽象语法树不会直接生成虚拟节点,抽象语法树最终生成的是渲染函数。