javascript - Vuejs 中的 $vm.user 和 $vm.$data.user 有什么区别?
问题描述
当你想访问组件数据时,你可以从两者中访问,两者$vm.user
都$vm.$data.user
设置并获得相同的结果,那么为什么我们有两种访问数据的方式呢?有什么区别,应该使用哪一个?
解决方案
$data
是实际组件的数据对象。为了方便起见,Vue代理了对它的数据访问,就像使用方法、计算属性和观察者一样。
JavaScript 引擎非常擅长优化对象访问,因此在性能方面差异很小,$vm.user
应该首选代理访问 ( )。
$data
当您想要深入观察所有组件的数据时,在极少数情况下很有用,例如:
watch: {
$data: {
handler() { /* ... */ },
deep: true
}
},
推荐阅读
- typescript - 带有条件属性的接口
- php - reCAPTCHA v3 验证分数出现问题
- ios - 从 EKEventStore 获取事件的问题
- for-loop - 当循环完成时,FOR 循环中的比较值不会与正确的向量元素相关联。- 代码审查
- reactjs - redux 的 state 对象中的这些附加属性是什么?
- c# - 无法从文件加载 X.509 证书
- reactjs - 为什么即使 mapStateToProps 返回相同的 (===) 道具,我的连接组件也会重新渲染?
- r - 时间序列ggplot中x轴上的时间戳
- visual-studio - XSLT 1.0 修改配置文件替换功能
- c# - 泛型方法上的 C# 协方差