场景:
我使用的是数组的splice和push更改数组 , 一般使用watch监听大部分只使用到新值 , 刚好这次还需要用到旧值,正常的数组监听只能监听到新值的改变,新老值打印并不能打印出旧值的数(新值和旧值一样),如果需要获取旧值,需要新建一个computed属性,使用JSON转换,然后再监听这个computed,就可以监听到新旧值的改变
computed:{
timeMark() {
return JSON.parse(JSON.stringify(this.timeList));
}
},
watch:{
timeMark: {
handler(nv, ov) {
//旧值的操作
!isEmpty(ov) &&
ov.forEach(item => {
this.player.removeProgressMark(item.startTime);
});
//新值的操作
nv.forEach(item => {
const time = item.startTime;
const duration = item.endTime - item.startTime;
this.addMark(time, duration);
});
},
deep: true
}
}