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 })