Vue监视属性

监视属性

监视属性watch:
1.当被监视的属性发生变化时,回调函数自动调用,进行相关操作
2. 监视的属性必须存在,才能进行监视!!
3. 监视的两种写法:
1. new Vue时传入watch配置
2. 通过vm.$watch监视
  1. new Vue时传入watch配置
watch:{
isHot:{
immediate : true, //一运行项目就立即开启监视
handler(newValue,oldValue){
console.log("isHot被监视了",newValue,oldValue);
}
}
}
  1. 通过vm.$watch监视
vm.$watch('isHot',{
immediate : true, //一运行项目就立即开启监视
handler(newValue,oldValue){
console.log("isHot被监视了",newValue,oldValue);
}
})

深度监视

深度监视:
1. Vue中的watch默认不监测对象内部值的改变
2. 配置deep:true 可以监测对象内部值的改变
备注:
1. Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以
2. 使用watch时根据数据的具体结构,决定是否采用深度监视

实例

new Vue({
el: '#root',
data: {
isHot: true,
number:{
a:1,
b:2,
}
},
watch:{
// 监视对象中某个属性的值
"number.a":{
immediate : true, //一运行项目就立即开启监视
handler(newValue,oldValue){
console.log("number.a被监视了",newValue,oldValue);
}
},
//监视对象中的所有值(深度监视,默认不开启)
"number":{
deep:true,
handler(newValue,oldValue){
console.log("number被监视了",newValue,oldValue);
}
},
isHot:{
immediate : true, //一运行项目就立即开启监视
handler(newValue,oldValue){
console.log("isHot被监视了",newValue,oldValue);
}
}
}

监视的简写

//简写 当watch没有开启immediate和deep时,只有handler时,可以开启简写
//在Vue定义时
watch:{
isHot(newValue,oldValue){
console.log("isHot被监视了",newValue,oldValue);
}
}
//在Vue外面调用$watch
vm.$watch('isHot',function(newValue,oldValue){
console.log("isHot被监视了",newValue,oldValue);
}
)
posted @   小罗要有出息  阅读(270)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示