vue 数据监听失败原因和解决方式
如果操作对象是数组,改变数组的值用Vue的 $ set方法,改变数组的长度用数组的splice方法使数组变化变成可监听的。如果操作对象是对象。如果操作的属性是对象内已经有的值,使用$ watch,加上关键字deep深度监听对象,如果操作的属性是对象内没有的新属性。使用$set使对象变成可监听的。
·
1.原因:
地址没有改变,vue就监测不到数据变化。这个时候,双向绑定就失效了。
官方也有相关解释:
对数组,或对象添加新的属性,删除属性或者修改数组长度是无法被监听的。
2. 解决办法
对象:
this.$set(obj,name,‘值’)对对象进行操作时,set接受三个参数,第一个为对象的名称,第二个为对象的key值,第三个为key对应的value值。
数组:
this.$set(this.arr,index,val),第一个是需要操作的数组对象,第二个是需要修改的数据的数组下标,第三个是修改后的值。
3.总结:
如果操作对象是数组,改变数组的值用Vue的 $ set方法,改变数组的长度用数组的splice方法使数组变化变成可监听的。如果操作对象是对象。如果操作的属性是对象内已经有的值,使用$ watch,加上关键字deep深度监听对象,如果操作的属性是对象内没有的新属性。使用$set使对象变成可监听的
更多推荐
已为社区贡献4条内容
所有评论(0)