Vue getCurrentScope 在组合式函数中有什么用途?
解释 getCurrentScope 返回当前活动作用域或 undefined 的条件,给出要求受管调用与返回手动 dispose 的两种 API 设计,并澄清检查时机和异步边界。
Vue面试题第 3 页,显示第 101–150 题,共找到 180 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
解释 getCurrentScope 返回当前活动作用域或 undefined 的条件,给出要求受管调用与返回手动 dispose 的两种 API 设计,并澄清检查时机和异步边界。
解释生命周期 API 通过当前组件实例完成登记的机制,演示普通异步回调中的迟到注册只会告警且不会执行,并准确说明 script setup 顶层 await 的编译器特例。
整理 Vue 常用组合式生命周期钩子与选项式钩子的职责对应,重点解释 beforeCreate、created 为什么没有 on 前缀版本,以及同步注册、SSR 与缓存组件边界。
给出 Vue 父子组件首次挂载时 setup、onBeforeMount 和 onMounted 的常见顺序,通过内存渲染器可验证记录解释向下创建、向上完成,并覆盖异步组件与兄弟顺序边界。
给出 Vue 修改状态后等待 nextTick 再访问节点的写法,说明它等待更新刷新而不是网络、动画和浏览器绘制,并区分一次操作与持续 post 监听。
说明 onScopeDispose 会把清理登记到当前活动作用域,在 scope.stop 或组件作用域结束时执行,演示事件订阅释放,并覆盖无活动作用域与 Vue 3.5 静默参数。
解释 onErrorCaptured 捕获后代组件错误的参数和传播链,说明返回 false 会阻止继续到更高边界与全局 errorHandler,并覆盖降级渲染再次报错、日志和生产 info。
说明父组件 onMounted 会等待同步子组件,但不包含异步组件和 Suspense 树,给出可控制异步解析顺序的示例,并讨论父子完成协议、错误与卸载。
解释模板 ref 在 setup 时尚未绑定节点、onMounted 后可访问的原因,给出可判空的组件示例,并覆盖条件渲染、卸载竞态、SSR 和后续更新边界。
说明 onServerPrefetch 返回 Promise 后服务端渲染器会等待数据就绪再生成 HTML,给出可注入加载器的组件写法,并覆盖客户端补载、错误、去重和 hydration 边界。
沿着渲染、updated、写回、再次渲染的链条解释无限循环,给出用 computed 或显式 watch 代替节点后无条件写状态的方案,并区分有界守卫与掩盖问题。
解释 onUpdated 只在所属组件因响应式变化更新自身节点树后调用,演示子组件独立状态变化不会让未更新的父组件执行钩子,并覆盖批量更新与指定变化。
解释 setup 覆盖 beforeCreate 与 created 所在初始化阶段,给出按功能组织状态、监听和清理的组件示例,并区分 DOM、注入、异步初始化和 Options this 边界。
说明普通异步回调里创建的 Vue 侦听器为何无法自动归属组件,给出同步创建、延迟启用的写法,以及必须延迟创建时需要处理的卸载竞态。
比较 Vue watch 与 watchEffect 调试选项中的 onTrack 和 onTrigger,演示记录属性读取与写入事件,并区分依赖触发、队列调度和业务回调执行。
Vue watch 开启 deep 会发生什么,为什么可能增加性能成本? 本文先给出可直接复述的结论,再用最小代码说明Vue watch deep 深度监听性能的工作方式、判断依据、项目边界和常见误区。
Vue watch 的 getter 返回新对象,为什么仍可能不触发或触发过多? 本文先给出可直接复述的结论,再用最小代码说明Vue watch getter 返回新对象触发规则的工作方式、判断依据、项目边界和常见误区。
Vue watch 的 immediate 何时执行,第一次 oldValue 是什么? 本文先给出可直接复述的结论,再用最小代码说明Vue watch immediate 首次执行 oldValue的工作方式、判断依据、项目边界和常见误区。
用页码和筛选状态说明 watch 来源数组的位置对应、getter 与快照的区别,以及同步变化批量调度、对象旧值和依赖条件重置的边界。
区分响应式对象引用和修改前快照,用实际代码比较深层对象监听与原始字段 getter,说明如何获得前后值、设计快照和避免回调内才复制旧值。
说明 Vue 3.4 起 once 在首次回调运行后自动停止,验证与 immediate 的组合行为,并区分第一次回调、第一次业务条件满足和异步操作成功一次。
Vue 怎样 watch props 的嵌套属性,直接传属性为什么有时不生效? 本文先给出可直接复述的结论,再用最小代码说明Vue watch props 嵌套属性 getter的工作方式、判断依据、项目边界和常见误区。
用连续切换资源编号的例子解释 Vue watch 请求竞态,给出清理回调、有效标记与 AbortController 组合写法,并覆盖错误和 loading 被旧请求误写的情况。
为什么直接 watch reactive 对象默认深监听,而 watch ref 对象的表现不同? 本文先给出可直接复述的结论,再用最小代码说明Vue watch reactive 默认深度和 ref 区别的工作方式、判断依据、项目边界和常见误区。
分析 Vue watch 回调修改自身监听源形成的反馈链,区分收敛修正和无条件递增,给出输入规范化的有界示例,并说明调度选项不能修复循环设计。
Vue watch 监听 ref、reactive 对象和 getter 时有什么区别? 本文先给出可直接复述的结论,再用最小代码说明Vue watch 监听源 ref reactive getter 区别的工作方式、判断依据、项目边界和常见误区。
解释 Vue watch 和 watchEffect 返回的停止句柄,演示停止前后的执行记录,并区分停止侦听、清理副作用和终止异步任务,适合面试回答与组件调试。
Vue 什么时候用 watch,什么时候用 computed? 本文先给出可直接复述的结论,再用最小代码说明Vue watch 和 computed 使用场景区别的工作方式、判断依据、项目边界和常见误区。
解释 Vue watchEffect 的同步依赖收集窗口,给出 await 前固定请求参数的写法,并区分读取最新值、使用本轮快照和请求竞态三个不同问题。
解释 watchEffect 为什么不提供 newValue 和 oldValue,给出改用多源 watch 比较状态的示例,并讨论首次执行、对象快照和批量更新遗漏中间值的边界。
说明 Vue 3.5 侦听句柄的 pause、resume 和 stop,演示暂停期间多次修改后恢复观察最新状态,并区分暂停订阅执行、资源清理与状态事务。
从副作用与派生值的职责解释 watchEffect 的首次执行和 computed 的按需计算,通过调用记录观察首次读取、缓存复用与依赖变化,并澄清 post 调度的例外。
通过资源编号与语言设置的例子比较 Vue watch 和 watchEffect,说明显式源、自动同步依赖、首次执行和旧值的区别,并给出适合业务边界的选择依据。
澄清 Vue 3.5 onWatcherCleanup 的同步注册限制,比较 watch 第三个参数和 watchEffect 第一个参数提供的 onCleanup,并说明旧接口没有被新接口取代。
Vue 3 的 reactive 数组为什么能感知 arr[0] 赋值、push 和 length 修改,而 Vue 2 需要特殊补丁? 本文先给出可直接复述的结论,再用最小代码说明Vue 3 数组索引 push length 响应式原理的工作方式、判断依据、项目边界和常见误区。
把纯静态路由表、常量字典或巨型不可变 JSON 全量 reactive 化,在 Vue 中主要浪费什么,应该怎么降级? 本文先给出可直接复述的结论,再用最小代码说明Vue 静态配置过度响应式 性能浪费 降级的工作方式、判断依据、项目边界和常见误区。
在 Vue 的响应式 effect 中,await 之后再读取响应式状态为什么可能不会按直觉建立依赖? 本文先给出可直接复述的结论,再用最小代码说明Vue effect 中 await 后依赖追踪失效的工作方式、判断依据、项目边界和常见误区。
同一个 Vue effect 依赖的多个 ref 在一次同步代码块里连续修改,为什么通常只引起一次重新运行而不是每行一次? 本文先给出可直接复述的结论,再用最小代码说明Vue 多次同步修改 批量调度 合并更新的工作方式、判断依据、项目边界和常见误区。
把带 #private 字段或依赖内部槽位的 class 实例放进 Vue reactive,为什么可能比放普通对象更容易坏? 本文先给出可直接复述的结论,再用最小代码说明Vue reactive class 私有字段失效原因的工作方式、判断依据、项目边界和常见误区。
在 Vue 的 computed 里直接 await 接口返回为什么常得到 Promise 或旧值,正确边界是什么? 本文先给出可直接复述的结论,再用最小代码说明Vue computed 里 await 的陷阱与边界的工作方式、判断依据、项目边界和常见误区。
多个 Vue computed 串联 a→b→c 时,源 ref 变化后重算顺序为什么不能依赖“立即全部同步执行”? 本文先给出可直接复述的结论,再用最小代码说明Vue computed 链式依赖 重算顺序的工作方式、判断依据、项目边界和常见误区。
说明 computed 依据实际读取的响应式依赖缓存结果,区分依赖变化、下一次读取、动态分支与下游更新,解释 Date.now、普通变量和原地绕过代理修改的边界。
Vue 的 computed 和模板里调用方法都能派生值,什么输入下 computed 的缓存才是决定性优势? 本文先给出可直接复述的结论,再用最小代码说明Vue computed 和 methods 缓存区别的工作方式、判断依据、项目边界和常见误区。
Vue computed/effect 在 if 分支里才读取某个响应式字段,分支切换后依赖集合会怎样变化? 本文先给出可直接复述的结论,再用最小代码说明Vue 条件分支 依赖收集动态变化的工作方式、判断依据、项目边界和常见误区。
用 customRef 做带格式校验的输入状态时,track 与 trigger 应该放在 get/set 的哪一侧,为什么? 本文先给出可直接复述的结论,再用最小代码说明Vue customRef track trigger 放置位置的工作方式、判断依据、项目边界和常见误区。
删除 Vue reactive 对象的键 delete state.foo 会触发哪些依赖,和把 foo 设为 undefined 语义相同吗? 本文先给出可直接复述的结论,再用最小代码说明Vue reactive delete 属性 与 undefined 区别的工作方式、判断依据、项目边界和常见误区。
为什么直接 const { count } = reactive({ count: 0 }) 后再改 count 不会触发 Vue 视图更新? 本文先给出可直接复述的结论,再用最小代码说明Vue reactive 解构丢失响应式 原因的工作方式、判断依据、项目边界和常见误区。
如果手写最小 Vue 响应式,activeEffect、targetMap、dep 三个结构分别解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明手写 Vue 响应式 activeEffect targetMap dep的工作方式、判断依据、项目边界和常见误区。
多个 Vue 组合式函数共享同一个 effectScope 时,dispose 一次会怎样影响其中 computed 与 effect? 本文先给出可直接复述的结论,再用最小代码说明Vue effectScope dispose 影响范围的工作方式、判断依据、项目边界和常见误区。
Vue 触发更新前如何判断值真的变了,NaN 与 +0/-0 这类边界为什么需要 hasChanged 语义? 本文先给出可直接复述的结论,再用最小代码说明Vue hasChanged Object.is NaN 变更判断的工作方式、判断依据、项目边界和常见误区。