模板解析

115 阅读1分钟

模板解析三部曲

  1. parse 将模板解析成ast语法树
  2. transform 将语法树进行一些预处理
  3. genarater 生成最终代码

parse

分别对不同类型的字符串取开始和结束位置进行截取,并删除源字符串,直到源字符串长度变为0为止,以此规则分别对dom节点(以尖角号开始<)、表达式(以{{开始)、文本等进行依次进行词法解析,

parseText

文本字符串解析,根据结尾是否是<或者是{{来判断结尾的位置,哪个结尾的位置靠前就使用哪个索引来截取

parseInterpolation

处理表达式信息

parseElement

处理元素信息 正则: 获取标签名div:/^<\/?([a-z][^\t\r\n\f />]*)/i.exec('<div></div>')[1]