问答

由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。这句话

作者:admin 2021-07-31 我要评论

由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。 官网地址 Vue中数组和对象改变,页面是有及时更新的啊!这句话说的是哪种情况? ### 他说的是你改变对...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。

官网地址
Vue中数组和对象改变,页面是有及时更新的啊!这句话说的是哪种情况?

###

他说的是你改变对象的某一属性,而这一个属性并没有事先定义。Vue通过Object.definedProperty来劫持data上的数据,对对象这一类型会遍历所有属性来设置setter/getter。所以如果你没有事先就声明好对象的属性而动态添加的话会检测不到,比如:

data: {
    obj: {
        x: 1,
    }
},
methods: {
    change() {
        // y没有事先声明,无法检测到变化
        this.obj.y = 2;
    }
}

数组也是同理。【PS:实际上数组是可以检测到的,但是据尤大所说是出于性价比的考虑而没有做,感兴趣可以搜一下,gayhub上有人提过issue貌似】

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 由于 JavaScript 的限制,Vue 不能检测

    由于 JavaScript 的限制,Vue 不能检测

  • 长连接如何同步监听回复

    长连接如何同步监听回复

  • KDE复制需要按两次 Ctrl + C?

    KDE复制需要按两次 Ctrl + C?

  • vant-tabs 里设置固定高度并使用了over

    vant-tabs 里设置固定高度并使用了over

腾讯云代理商
海外云服务器