You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3中ref值的身份校验不符合预期,是认知偏差还是文档过时?

问题解答

Vue.js官方文档指出:

In Vue 3, Proxies are used for reactive objects and getter / setters are used for refs.

你的理解存在偏差,文档并未过时。

核心原因:当你用ref()包裹对象时,Vue会自动将该对象转换为响应式代理(Proxy)。objRef.value的getter返回的是这个代理对象,而非你传入的原始obj,因此obj === objRef.value会返回false。

如果传入的是原始值(如字符串、数字、布尔值),ref()的value会直接返回原始值本身,此时全等校验会成立。

你可以修改代码验证这一逻辑:

const obj = {};
const objRef = Vue.ref(obj);

Vue.createApp({
setup() {
    console.log(Vue.isReactive(obj)); // false,原始对象非响应式
    console.log(Vue.isReactive(objRef.value)); // true,返回的是响应式代理
    return {
        answer: obj === objRef.value,
    };
}
}).mount('#app');

内容的提问来源于stack exchange,提问作者Ahmad Shahwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:07:25