vue 版本3的watch监听和watchEffect监听的区别

代码如下:


<p>我的资料:姓名:{{name}} 年龄: {{age}}</p> 

import {ref,watch,watchEffect} from 'vue';

const name = ref("carver");
const age = ref(100);
const people = ref({
    name:"carver",
    age:22
});

//*****************************************************【监听属性】*****************************************************//
//【监听属性】 写法:变量,参数(新值,旧值)    注意:该 变量的类型只能为字符串/数字
watch(name,(newValue,oldValue)=>{
    console.log('新值:'+newValue+',旧值:'+oldValue);
})
//【监听属性】 写法:变量,参数(新值)    注意:该 变量的类型只能为字符串/数字
watch(name,(newValue)=>{
    console.log('新值:'+newValue);
})

//*****************************************************【监听对象】*****************************************************//
//【监听对象】单独监听对象的中的每个属性
watch(people.value.name,(newValue)=>{
    console.log('新值:'+newValue);
})
watch(people.value.age,(newValue)=>{
    console.log('新值:'+newValue);
})

//【深度监听对象】该people中的对象属性变化都会被监听,deep:true 开启深度监听,immediate:true 立即执行
watch(people,(newPeople)=>{
    console.log(newPeople);
},{deep:true},{immediate:true})

//【监听多个属性】多属性监听:watch([属性1,属性2...],([属性1,属性2...],[属性1,属性2...])=>{})
watch([name,age],([newName,newAge],[oldName,oldAge])=>{
    console.log(newName,newAge);
    console.log(oldName,oldAge);
})

//【监听多个属性】单独监听:watch([属性1,属性2...],([属性1,属性2...],[属性1,属性2...])=>{})
watch(name,(newValue,oldValue)=>{
    console.log('新值:'+newValue+',旧值:'+oldValue);
})
watch(age,(newValue,oldValue)=>{
    console.log('新值:'+newValue+',旧值:'+oldValue);
})

//【监听所有属性】注意:性能较差
watchEffect(()=>{
    console.log(name.value,age.value)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值