【问题标题】:In vue2.7, why original object is equal to proxy object?vue2.7中,为什么原始对象等于代理对象?
【发布时间】:2023-02-23 14:21:10
【问题描述】:
<script setup>
import { reactive } from "vue";

const raw = {};
const proxy = reactive(raw);

console.log(raw === proxy);  //true
</script>

在 vue3 文档中,它说 false。 https://vuejs.org/guide/essentials/reactivity-fundamentals.html#reactive-proxy-vs-original-1

在vue2.7中,结果为真。请解释为什么会出现这种结果。

如果真值是正确的,改成vue 2.7来用vue 3不是更危险吗?

谢谢!

【问题讨论】:

    标签: vuejs2 vuejs3


    【解决方案1】:

    这个问题太有趣了! 我喜欢这个问题

    【讨论】:

      【解决方案2】:

      因为在 v2.7 中,vue 也使用 api defineProperty 来向后兼容 IE 11,而 v3 使用 Proxy 并停止支持 IE 11

      结果是合理的,您不能为 vue 2.7 申请 vue 3 的文档

      vue@2.x 的所有实例都有一个引用 raw value 的水合值,这确保在它们等效时不会浪费内存:

      const value = {}
      const app = new Vue({ data: { value } })
      
      console.log(app.value === value)
      &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"&gt;&lt;/script&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-10
        • 2015-02-28
        • 1970-01-01
        • 2021-07-13
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        相关资源
        最近更新 更多