Vue 模板编译原理

每日一题: Vue 模板编译原理

定义:

Vue 中的模板 tempalte 无法被浏览器解析并渲染,因为这不属于浏览器的标准,不是正确的 HTML 语法,所以需要将 template 转化成一个 JS 函数,这样浏览器就可以执行这一个函数并渲染出对应的 HTML 元素,就可以让试图跑起来,这是一个转化的过程,就成为模板编译。

过程:

模板编译又分为三个阶段:解析 parse优化 optimize生成 genertate ,最终生成可执行函数 render

解析阶段:使用大量的正则表达式对 template 字符串进行解析,将标签、指令、属性等转化为抽象语法树 AST

优化阶段:遍历 AST,找到其中的一些静态节点并进行标记,方便在页面重渲染的时候进行 diff 比较时,直接跳过这一些静态节点,优化 runtime 性能

生成阶段:将最终的 AST 转化成 render 函数字符串

相关推荐
Aliex_git4 分钟前
浏览器 API 兼容性解决方案
前端·笔记·学习
独泪了无痕6 分钟前
useStorage:本地数据持久化利器
前端·vue.js
程序员林北北19 分钟前
【前端进阶之旅】JavaScript 一些常用的简写技巧
开发语言·前端·javascript
全栈前端老曹19 分钟前
【Redis】Redis 持久化机制 RDB 与 AOF
前端·javascript·数据库·redis·缓存·node.js·全栈
NEXT0623 分钟前
受控与非受控组件
前端·javascript·react.js
NEXT0641 分钟前
防抖(Debounce)与节流(Throttle)解析
前端·javascript·面试
mqiqe1 小时前
pnpm 和npm 有什么区别?
前端·npm·node.js
呆子小木心2 小时前
Vue2或Vue3项目引用百度地图
javascript·vue.js·typescript·前端框架·html5
Swift社区2 小时前
React 项目生产环境构建与静态资源优化
前端·react.js·前端框架
A小码哥3 小时前
基于 Trae + 国产 GLM-4.7模型的任务驱动式软件开发实践
前端