vue源码学习之模板解析

1. 将el的所有子节点取出,添加到一个新建的文档fragment对象中

2.对fragment中的所有层次子节点递归进行编译解析处理

  a.对大括号表达式文本节点进行解析

  b.对元素节点的指令属性进行解析

     事件指令解析

     一般指令解析

3. 将解析后的fragment添加到el中显示

模板解析(1):大括号表达式解析

1.根据正则对象得到匹配出的表达式字符串:子匹配/RegExp.$1      name

2.从data中取出表达式对应的属性值

3.将属性值设置为文本节点的textContent

模板解析(2):事件指令解析

1.从指令名中取出事件名

2.根据指令的值(表达式)从methods中得到对应的事件处理函数对象

3.给当前元素节点绑定指定事件名和回调函数的dom事件监听

4.指令解析完后,移除此指令属性

模板解析(3):一般指令解析

1)得到指令明和指令值(表达式)  text/html/class

2)从data中根据表达式得到对应的值

3)根据指令名确定需要操作元素节点的什么属性

  *v-text ----  textContent 属性

  *v-html ----innerHTML 属性

  *v-class ----className 属性

4)将得到的表达式的值设置到对应的属性上

5)移除元素的指令属性

原文地址:https://www.cnblogs.com/wx2019/p/14866632.html