triggerRef是Vue3专为shallowRef设计的手动更新API,用于在修改其.value内部属性后强制触发依赖更新;因shallowRef仅响应.value直接赋值而不追踪内层变化,故需triggerRef补足视图刷新。
triggerRef 是 Vue 3 中专为 shallowRef 设计的手动更新 API。它不改变数据本身,而是告诉响应式系统:“这个 shallowRef 的 .value 虽然没换,但内部内容变了,请重新通知依赖更新视图。”
shallowRef 只监听 .value 的直接赋值(比如 data.value = newObj),不追踪其内部属性变化(比如 data.value.count++ 或 data.value.name = '李四')。这种设计节省性能,但也意味着你改了内部字段,视图不会自动刷新——这时就得靠 triggerRef 补上这一步。
示例:
const userInfo = shallowRef({ name: '张三', age: 25 })
userInfo.value.age = 26 ← 这行不会触发更新
triggerRef(userInfo) ← 加上这行,依赖(如模板、effect)就会重跑