vue解析模板的解释

vue解析模板的解释

通过查看vue源码,我们知道了虚拟dom,虚拟dom的构建需要将template解析成AST语法树,在转化成render函数,最后返回一个vnode虚拟dom节点。
什么是AST?

在VUE的mount过程中,template会被编译成AST语法树,AST是指抽象语法树,或者语法树,是指源代码中的抽象语法结构的树状表现形式

解析实例

实现将模板解析成AST

<div>
  <p>{{name}}</p>
</div>

将上面模板解析之后如下:

{
  tag: "div"
  type: 1,
  staticRoot: false,
  static: false,
  plain: true,
  parent: undefined,
  attrsList: [],
  attrsMap: {},
  children: [
    {
      tag: "p"
      type: 1,
      staticRoot: false,
      static: false,
      plain: true,
      parent: {tag: "div", ...},
      attrsList: [],
      attrsMap: {},
      children: [{
        type: 2,
        text: "{{name}}",
        static: false,
        expression: "_s(name)"
      }]
    }
  ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值