toValue() 归一化取值(值/ref/getter)
最后更新:2026-10-22
toValue() 归一化取值(值/ref/getter)
toValue() 把普通值、ref、getter 函数统一取为当前值:可复用函数接收三种输入形态,调用方无需区分。
| 分组 | 响应式·工具 |
|---|---|
| 类型 | API |
| 作用域 | 组件内 |
| Vue 版本 | 3.3+ |
| SSR 支持 | 支持 |
📝 语法
toValue(1) // 1
toValue(count) // count.value
toValue(() => count.value) // count.value(每次调用重新求值)
⚙️ 参数
| source | 普通值 / ref / 返回值的 getter 函数 |
|---|
返回值:归一化后的当前值
▶ 示例
修改下面的代码,在预览区实时查看效果:
输出:
显示「42」。
💡 要点
💡 提示 设计组合式函数参数时用它:调用方传值、传 ref、传 getter 都能工作,API 更宽容。
ℹ️ 说明 getter 形态能表达“依赖其他响应式数据”,computed 内部会正确追踪。
⚠️ 注意 仅 3.3+ 可用;低版本项目用 isRef 判断加手写取值替代。
🏷️ 相关工具
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 和 unref 的区别?
A toValue 额外支持 getter 函数并每次重新求值;unref 只处理 ref。
Q 为什么不直接要求传 ref?
A 组合式函数给使用者留余地:静态值、响应式状态、计算逻辑三种写法都自然。
Q 它会在模板里自动解包吗?
A 它不是状态本身,是运行时取值工具,在 JS 逻辑里显式调用。