vue 中如何解析模板

模板是什么

  • 本质:字符串
  • 有逻辑,如 v-if v-for
  • html 格式很像,但有很大区别
  • 最终还要转换为 html 来显示

模板最终必须转换成 JS 代码,因为

  • 有逻辑(v-if v-for),必须用 JS才能实现
  • 转换为 html 渲染页面,必须用 JS 才能实现
  • 因此,模板最重要转换成一个 JS 函数(render 函数)

在这里插入图片描述

render 函数

  • 模板中所有信息都包含在了 render 函数中
  • thisvm
  • pricethis.pricevm.price,即 data 中的 price
  • _cthis._cvm._c

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

render 函数与 vdom

  • vm._c 其实就相当于 snabbdom中的 h 函数
  • render 函数执行之后,返回的是 vnode
    在这里插入图片描述

在这里插入图片描述

  • updateComponent中实现了 vdompatch
  • 页面首次渲染执行 updateComponent
  • data 中每次修改属性,执行updateComponent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值