Vue 模板编译原理

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

定义:

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

过程:

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

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

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

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

相关推荐
goDeep10 分钟前
useMemo 和 useCallback 的区别,我终于搞懂了
前端
小亮学前端11 分钟前
在1Panel中部署Nuxt项目
前端·vue.js
产品研究员14 分钟前
AI生成可用的React交互代码实测:Lovable vs Stitch vs Paico
前端·react.js·aigc
labixiong15 分钟前
Prompt 工程:当一段文字学会了思考、行动与统治
前端·ai编程
用户8417948145617 分钟前
vxe-table 虚拟滚动下自定义行高:支持每行独立高度与自适应
vue.js
biubiubiu_LYQ18 分钟前
入门开发者必学篇之JS事件循环:为什么你的代码输出总翻车?
前端·javascript
HwJack2026 分钟前
鸿蒙背景下 Cocos Creator 的三大 JS 引擎:JIT 与热更新的十字路口
javascript·华为·harmonyos
程序员黑豆39 分钟前
AI全栈开发之Java:怎么安装JDK
前端·ai编程·全栈
周杰伦fans40 分钟前
AutoCAD C# 二次开发:如何精确监听工作空间切换事件
前端·c#
丷丩1 小时前
MapLibre GL JS第41课:向地图添加图标
前端·javascript·mapbox·maplibre gl js