Vue 模板编译原理

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

定义:

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

过程:

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

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

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

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

相关推荐
前端 贾公子1 分钟前
React 和 Vue 都离不开的表单验证库 async-validator 之策略模式的应用 (上)
vue.js·react.js·策略模式
阿珊和她的猫2 分钟前
Session 与 Cookie 的对比:原理、使用场景与最佳实践
前端·javascript·vue.js
杜子不疼.4 分钟前
SpringBoot + Vue 前后端分离项目实战:权限 + 工作流 + 报表
vue.js·spring boot·后端
Fantasy丶夜雨笙歌7 分钟前
Web 服务基石 Nginx
运维·前端·nginx
敲代码的小吉米12 分钟前
Element Plus 表格中的复制功能使用指南
前端·javascript·elementui
Purgatory00115 分钟前
CSS 访问服务器
服务器·前端·css
昊坤说不出的梦15 分钟前
梳理 Spring Boot Web 开发的几个概念
前端·spring boot·后端
2301_7965125215 分钟前
【精通篇】打造React Native鸿蒙跨平台开发高级复合组件库开发系列:Sidebar 侧边导航(绑定当前选中项的索引)
javascript·react native·react.js·ecmascript·harmonyos
We་ct18 分钟前
LeetCode 103. 二叉树的锯齿形层序遍历:解题思路+代码详解
前端·算法·leetcode·typescript·广度优先