Vue 模板编译的过程

Vue 模板编译的过程

Vue中的模板编译就是将模板编译成render渲染函数
模板编写,便于阅读,便于交互,编写render函数比较复杂

编译过程

  1. 入口: src/platforms/web/entry-runtime-with-compile.js
    如果有render函数,进行render调用,没有render,进行模板转换render函数
    调用createCompile函数,接收baseCompile函数

  2. 将模板转换为ast语法树,描述代码结构
    使用optimize(ast,options)优化抽象语法树
    将语法树转换为字符串形式的 js 代码
    最后会返回createCompileToFunction函数,是整个模板编译的入口函数

  3. createCompileToFunction函数执行
    首先定义一个cache对象,用来通过闭包缓存执行的结构
    返回了compileToFunctions函数
    判断是否有缓存的结构,如果有直接返回
    进行编译,调用compile函数,编译对象,字符串形式的 js 代码
    调用createFunction,将字符串形式转换为函数形式
    将结果缓存并返回生成的res对象

  4. compile的执行过程
    1.compile接收template模板和options选项作为参数
    2.定义了合并options和存储编译错误和信息的数组
    3.如果options存在,进行options的合并
    4.核心:调用baseCompile,将模板编译成render函数,将错误信息放置到之前定义的数组
    5.返回compiled

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值