首页 > 解决方案 > Vuejs 中的 $vm.user 和 $vm.$data.user 有什么区别?

问题描述

当你想访问组件数据时,你可以从两者中访问,两者$vm.user$vm.$data.user设置并获得相同的结果,那么为什么我们有两种访问数据的方式呢?有什么区别,应该使用哪一个?

标签: javascriptperformancevue.jsvue-component

解决方案


$data是实际组件的数据对象。为了方便起见,Vue代理了对它的数据访问,就像使用方法、计算属性和观察者一样。

JavaScript 引擎非常擅长优化对象访问,因此在性能方面差异很小,$vm.user应该首选代理访问 ( )。

$data当您想要深入观察所有组件的数据时,在极少数情况下很有用,例如:

    watch: {
        $data: {
            handler() { /* ... */ },
            deep: true
        }
    },

推荐阅读