【发布时间】:2022-11-07 20:11:43
【问题描述】:
我想获取从 Vue 3 代理传递给 reactive() 的原始对象。这是我的代码:
const token: any = reactive(new Token());
console.log(token.target);//prints undefined
有人能说怎么做吗?
【问题讨论】:
-
你需要这个做什么?这可能是 XY 问题
标签: javascript typescript vue.js vuejs3
我想获取从 Vue 3 代理传递给 reactive() 的原始对象。这是我的代码:
const token: any = reactive(new Token());
console.log(token.target);//prints undefined
有人能说怎么做吗?
【问题讨论】:
标签: javascript typescript vue.js vuejs3
reactive 返回 JavaScript Proxy,它不会暴露原始对象,除非代理是可撤销的。
原始对象可以通过反应式代理上的__v_raw 属性访问,它不是公共 API 的一部分,不应依赖。公共 API 为toRaw:
const token = reactive(new Token());
const rawToken = toRaw(token);
如果需要原始对象,则不应丢弃引用:
const rawToken = new Token();
const token = reactive(rawToken);
【讨论】:
ref 呢?这似乎无法获取ref 的基础对象。
reactive(someRef)?