vue 模拟试卷
模板编译底层原理专题测试
- 模板编译的三个阶段(解析/优化/代码生成)
- AST(抽象语法树)结构与转换
- 词法分析与语法分析
- 代码生成器与 render 函数生成
- 编译器优化策略(静态节点标记等)
试卷习题(7 题)
参考答案在文末判断题
1
判断题
Vue在模板编译的optimize阶段标记静态节点后,在patch阶段会完全跳过这些静态节点的diff比较,直接使用缓存的VNode。(判断对错)
2
判断题
在Vue模板中,使用v-once指令的元素及其所有子元素在首次渲染后不会再重新渲染,即使其绑定的数据发生变化。(判断对错)
单选题
3
单选题
Vue的模板编译过程分为哪三个阶段,每个阶段的主要职责是什么?
多选题
4
多选题
关于Vue模板编译过程中指令(v-if/v-for/v-show)的处理,以下哪些说法是正确的?
5
多选题
关于v-model指令在模板编译阶段的处理,以下哪些说法是正确的?
填空题
6
填空题
在Vue 3的编译优化中,编译器会为动态VNode添加属性,该属性是一个位掩码(bitmask),用于标识节点哪些部分可能发生变化。当该值为时表示节点的props可能变化,当该值为时表示节点的文本内容可能变化。
简答题
7
简答题
请简述Vue模板中的插值表达式{{ message }}和事件绑定@click="handleClick"在编译阶段分别被转换为什么渲染函数,以及这些函数的作用。
参考答案
1.错误
2.正确
3.B
4.A;B;D
5.A;B;C;D
6.patchFlag;1;1
7.略
