Vue:模板编译 与 Virtual DOM

本文介绍了Vue模板编译的过程,包括解析为AST、静态节点标记和生成render函数。详细阐述了Vue虚拟DOM的概念、实现原理及其优势。同时讨论了模板转换成视图的流程,涉及渲染函数、VNode和patch算法。最后,文章提出了关于模板编译时机、静态模板和动态模板的疑问。
摘要由CSDN通过智能技术生成

(一)Vue模板编译

在Vue中我们有三种方式来创建HTML

  • 模板
  • 手动写渲染函数
  • JSX

渲染函数是最原始的方法,而模板最终会通过编译转换陈渲染函数。渲染函数执行后,会得到一份vnode用来渲染真实DOM。所以,模板编译其实是配合虚拟DOM进行渲染。

1. 什么是模板编译?

所谓模板编译就是把模板编译成vnode的渲染函数。

2. 模板编译过程:

模板编译可以分为三个阶段:
在这里插入图片描述

  • 将模板解析为AST(抽象语法树)—— 解析器

  • 遍历AST,对 AST 进行静态节点标记,主要用来做虚拟DOM的渲染优化 —— 优化器

  • 使用AST生成render函数代码字符串—— 代码生成器

关于模板编译的源码可以在vue-template-compiler包中查看。

(二)Vue虚拟DOM

1. Virtual DOM

概念:

Virtual DOM是一个能够直接描述一段HTML DOM结构的JavaScript对象,浏览器可以根据它的结构按照一定规则创建出确定唯一的HTML

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值