unref 是 Vue 3(特别是 Composition API)中一个非常常用的工具函数,用于自动“解包” ref 对象。
✅ 一句话解释:
unref(x)等价于:如果x是一个ref,就返回x.value;否则直接返回x。
它让你无需手动判断变量是不是 ref,就能安全地获取其原始值。
🔍 语法
ts
编辑
import { unref } from 'vue'
const value = unref(someVariable)
等价于:
ts
编辑
const value = isRef(someVariable) ? someVariable.value : someVariable
📌 在你的代码中分析
ts
编辑
const updateIcon = async (icon: string) => {
if (unref(isLocal)) return
// ...
}
假设 isLocal 的定义可能是:
ts
编辑
// 情况1:是普通 boolean
const isLocal = false
// 情况2:是 ref<boolean>
const isLocal = ref(false)
使用 unref(isLocal) 可以统一处理这两种情况:
- 如果
isLocal是ref→ 获取isLocal.value - 如果
isLocal是普通值 → 直接用isLocal
这样写更健壮,尤其在封装通用逻辑或组件时,你不知道传入的参数是 ref 还是普通值。