最近在自学vue对于watch监测这块还有点疑问,请教前辈帮忙解答。具体问题如下:测试监测不同类型data数据的新旧值,在有数组的情况下,watch监测到了数组的变化但是没监测到变化前的旧值。在官网也查了文档,问题应该是出在下面这里,无奈对于官网文档给出的解决方法看不懂,求各位大神给与指点!!!g:{handler:function(val,oldVal){console.log("newG:"+val,'oldG:'+oldVal);}}当你利用索引直接设置一个项时,例如:vm.items[indexOfItem]=newValue当你修改数组的长度时,例如:vm.items.length=newLengthwatch实例1A:B:Cname:Dname:arry:newVue({el:'#app',data:{a:'',b:'',c:{name:''},d:{e:{f:{nage:''}}},g:[]},watch:{//普通watch监听a:function(val,oldVal){console.log("newA:"+val,'oldA:'+oldVal);},//通过方法名在methods内监听b:'anothermethod',//对象深度监听c:{handler:function(val,oldVal){console.log('newname:'+val,'oldname:'+oldVal);},deep:true,immediate:true},'c.name':{handler:function(val,oldVal){console.log('newC:'+val,'oldC:'+oldVal);}},'d.e.f.age':{handler:function(val,oldVal){console.log('newD:'+val,'oldD:'+oldVal);}},g:{handler:function(val,oldVal){console.log("newG:"+val,'oldG:'+oldVal);}}},methods:{anothermethod:function(val,oldVal){console.log("newB:"+val,'oldB:'+oldVal);}}})
2 回答

慕斯王
TA贡献1864条经验 获得超2个赞
知道怎么用但是说不出来o(╯□╰)o数组本身有值:oldArr=[1,2,3],渲染到html上显示1,2,3;现在需求来了,要改一下数组的值,变成newArr=[1,3,5],并让html渲染成1,3,5;怎么办?1.替换数组;2.变异方法;你都不想用,就要通过index改变数组的值,让html显示1,3,5.然后就出现了你看到的那个问题。通过改index什么的,怎么解决?1.Vue.set(vm.items,indexOfItem,newValue);2.vm.items.splice(indexOfItem,1,newValue);大概就是这么个意思
添加回答
举报
0/150
提交
取消