Vue-------watch浅监听和深监听

本文介绍了Vue中watch的浅监听和深监听的区别。浅监听仅能检测到数组数量的变化,无法捕获数组内对象属性的修改。而深监听通过设置`deep:true`,能够监听到数据结构内部的任何变化,包括对象属性的增删改。在示例中,使用了uni.setStorage进行数据存储,展示了两种监听方式在数据变更时的响应情况。
摘要由CSDN通过智能技术生成

Vue-------watch浅监听和深监听

浅监听

data() {
	return {
		stu: [
			{ name: '张三丰', grade: 100 },
			{ name: '张无忌', grade: 88 },
			{ name: '张翠山', grade: 66},
		] 
	}
},
watch: {
	stu(){
		//浅监听
		console.log('stu被改变了');
	 	uni.setStorage({
			key: 'stu',
			data: this.stu,
			success() {
				console.log('success');
			}
		})
	},
}

浅监听是函数的形式,且只能够监听数据的数量变化,而不能够监听数据内部的数据的变化
如:此时如果在stu数组中添加了一个新的数据,则可以监听到,但是如果改变了原有数据中namegrade的内容,则监听不到

深监听

data() {
	return {
		stu: [
			{ name: '张三丰', grade: 100 },
			{ name: '张无忌', grade: 88 },
			{ name: '张翠山', grade: 66},
		] 
	}
},
watch: {
	stu:{
		//深监听
		handler(){
			console.log('stu被改变了');
			uni.setStorage({
				key: 'stu',
				data: this.stu,
				success() {
					console.log('success');
				}
			})
		},
		//deep是true时,表示深监听打开
		deep: true
	}
}

深监听是对象的形式,且有handler函数和deep组成,当deeptrue时表示深监听打开
深监听可以不仅可以监听到数据的数量的变化,同时也可以监听到数据内部内容的变化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值