全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 8 道配套习题

运行时渲染和核心机制专题

专题说明

本专题综合探讨Vue运行时渲染的完整机制,包括渲染流程、调度器、响应式与渲染的联动等综合性内容。

学习目标

  1. 理解完整的渲染流程
  2. 掌握调度器的工作机制
  3. 了解响应式与渲染的联动关系

学习内容

  • 渲染流程详解
  • 调度器机制
  • 响应式与渲染联动
  • 渲染性能优化

学习建议

建议先阅读配套完整指南,综合理解渲染机制后再开始答题。

📝 配套习题(6 题)

💡 参考答案在文末
判断题
1

在Vue中,被KeepAlive缓存的组件在重新激活时,由于其内部数据在初始化时已经完成了依赖收集,所以不会重新触发getter中的依赖收集过程。(判断对错)

A

B

单选题
2

关于Vue 2响应式系统的底层实现,以下说法错误的是?

A

Vue通过Object.defineProperty将data对象的所有属性转换为getter/setter

B

每个组件实例对应一个Watcher,在getter中收集依赖,在setter中触发更新

C

对象新增属性或数组索引赋值会自动触发响应式更新

D

Vue无法检测到对象属性的添加或删除,需要使用Vue.set或this.$set

多选题
3

关于Vue自定义指令(directive)的底层实现和生命周期钩子,以下哪些说法是正确的?

A

bind钩子在指令第一次绑定到元素时调用,只会调用一次

B

inserted钩子在被绑定元素插入父节点时调用,此时可以访问父节点

C

update钩子在组件VNode更新前调用,无论绑定值是否变化

D

componentUpdated钩子在组件VNode及其子VNode全部更新后调用

4

关于Vue中作用域插槽和KeepAlive缓存机制的组合使用,以下哪些说法是正确的?

A

KeepAlive缓存的是组件实例而非VNode,缓存的组件会保留其内部状态

B

作用域插槽的内容在KeepAlive缓存后不会重新渲染,但会保留子组件传递的数据

C

KeepAlive的include/exclude属性支持组件name进行匹配,不写name则无法匹配

D

被KeepAlive缓存的组件不会触发created/mounted钩子,但会触发activated钩子

5

当Vue中响应式数据发生变化时,从setter触发到DOM更新的完整流程中涉及哪些关键步骤?

A

setter调用dep.notify()通知所有Watcher

B

Watcher将更新函数推入异步更新队列

C

nextTick中执行patch(oldVNode, newVNode)进行diff比较

D

patch过程中根据diff结果调用DOM API更新真实DOM

6

在Vue中使用KeepAlive缓存包含作用域插槽的组件时,以下哪些行为会发生?

A

被缓存的组件再次激活时,作用域插槽会重新执行并获取最新的子组件数据

B

被缓存的组件会触发activated钩子,不会触发created钩子

C

作用域插槽的渲染函数会被缓存,即使子组件数据变化也不会重新渲染

D

KeepAlive缓存的是组件实例,包括其完整的作用域和插槽配置

参考答案
1.错误 2.C 3.A;B;D 4.A;B;D 5.A;B;C;D 6.A;B;D
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 过度动画与状态复用专题
下一个专题 → 运行时渲染核心机制专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码