watch监听数组对象中元素的变化

背景

监听一个数组,数组中的每个元素都是对象,如果某个对象中的属性值变化时,watch中的val 和 oldval是一样的值
结构如:

let arr = [
	{ a: 1, b: 2, c: 3},
	{ a: 1, b: 2, c: 3}
]

解决方法

computed: {
	newArr : function() {
		return JSON.parse(JSON.stringify(this.arr))
	}
}

在计算属性中写一个新的数组,值为JSON.parse(JSON.stringify)原数组得来的,这样arr变化时,也会触发计算属性,newArr也会变化

watch: {
	newArr: {
		handler: function(val, oldval){
			console.log(val, oldval)
		},
		deep: true
	}
}

这样的话,可以在val和oldval看到不同


版权声明:本文为A20190518原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。