watch时的value问题

ref定义的基本数据类型,在watch时不需要.value

let sum = ref(0)

// 此时的sum是一个reflmpl实例对象,
watch(sum, (newvalue, oldvalue) => {
	console.log('sum的值变化了', newvalue, oldvalue)
})

ref定义的引用数据类型,在watch时需要.value

let person = ref({
	name: '大和',
	age: 18,
	job: {
		j1: {
			salary: 20
		}
	}
})
// person是ref所生成的reflmpl对象,此时reflmpl里的value不再是一个基本类型的数据,而是一个proxy对象,所以需要`.value`
watch(person, (newvalue, oldvalue) => {
	console.log('person的值发生变化了')
})
// 此时watch的就是proxy实例对象
watch(person.value, (newvalue, oldvalue) => {
	console.log('person的值发生变化了')
})
// 如果实在不想`.value`,开启深度监视就好
watch(person, (newvalue, oldvalue) => {
	console.log('person的值发生变化了')
}, { deep: true })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值