1.原因:

地址没有改变,vue就监测不到数据变化。这个时候,双向绑定就失效了。

官方也有相关解释:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c462d6d229a9477795a88aa3f8f2aadf.png

对数组,或对象添加新的属性,删除属性或者修改数组长度是无法被监听的。

2. 解决办法

对象:
this.$set(obj,name,‘值’)对对象进行操作时,set接受三个参数,第一个为对象的名称,第二个为对象的key值,第三个为key对应的value值。

数组:
this.$set(this.arr,index,val),第一个是需要操作的数组对象,第二个是需要修改的数据的数组下标,第三个是修改后的值。

3.总结:

如果操作对象是数组,改变数组的值用Vue的 $ set方法,改变数组的长度用数组的splice方法使数组变化变成可监听的。如果操作对象是对象。如果操作的属性是对象内已经有的值,使用$ watch,加上关键字deep深度监听对象,如果操作的属性是对象内没有的新属性。使用$set使对象变成可监听的

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐