Vue监视属性
作者:互联网
监视属性
监视属性watch:
1.当被监视的属性发生变化时,回调函数自动调用,进行相关操作
2. 监视的属性必须存在,才能进行监视!!
3. 监视的两种写法:
1. new Vue时传入watch配置
2. 通过vm.$watch监视
- new Vue时传入watch配置
watch:{
isHot:{
immediate : true, //一运行项目就立即开启监视
handler(newValue,oldValue){
console.log("isHot被监视了",newValue,oldValue);
}
}
}
- 通过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);
}
)
标签:Vue,isHot,watch,oldValue,监视,newValue,属性 来源: https://www.cnblogs.com/luoking/p/16484496.html