unref 是解包 ref 的工具函数,用于安全取值:是 ref 则返回 .value,否则原样返回;triggerref 则专用于强制通知 shallowref 的依赖更新,二者功能不同、不可互换。

unref 和 triggerRef 解决的是完全不同的响应式问题,不能互换,也不构成“替代关系”。
unref:解包 ref,做值提取
它是一个工具函数,作用是「安全取值」:如果传入的是 ref,就返回 .value;否则原样返回。本质是语法糖:val = isRef(val) ? val.value : val。
递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。
- 常用于组合式函数中接收参数时,兼容 ref 或原始值
- 在 computed、watch 或逻辑判断里避免反复写
xxx.value - 不触发任何响应式更新,也不影响依赖追踪
triggerRef:强制刷新 shallowRef 的依赖
只对 shallowRef 有效。shallowRef 的 .value 本身是非响应式的(比如一个普通对象),修改其内部属性不会触发视图更新。triggerRef 就是用来「手动通知 Vue:这个 shallowRef 的值变了,请重新执行依赖它的 effect」。
- 典型场景:给 shallowRef.value 赋了一个新对象,或深度修改了它的属性后
- 必须显式调用,否则页面不会响应
- 和 unref 完全无关——它不读值,只发通知
关键区别一句话总结
unref 是「读取值」的简化操作;triggerRef 是「通知更新」的强制手段。前者面向数据消费,后者面向响应式控制。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!









