watch里面的deep和immediate作用及说明
作者:扛把子小雪
这篇文章主要介绍了watch里面的deep和immediate作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
watch里面的deep和immediate作用
先看下问题
faterVisible:这个是父组件中传值到子组件中的监听父组件的打开状态的值
首次父组件打开时,没有加immediate时,不会走对应的方法,第二次打开时才会执行


于是,我加了immediate。。。这样问题就解决了呢
watch属性deep和immediate区别
deep:默认值是 false,代表是否深度监听。immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样,不会在绑定的时候就执行。
watch中的immediate、handler和deep属性
immediate属性
使用watch时有一个特点,就是当值第一次绑定时,不会执行监听函数,只有值发生改变时才会执行。
如果我们需要在最初绑定值的时候也执行函数,则就需要用到immediate属性。
handler属性
watch中需要具体执行的方法
deep属性
data() {
return {
obj: {
'name': "超级无敌暴龙战士",
'age': 999
},
}
},
watch: {
obj: {
// 执行方法
handler(oldValue,newVal) {
console.log(oldValue)
console.log(newValue)
},
deep: true, // 深度监听
immediate: true // 第一次改变就执行
}
// 如果只需要监听对象中的一个属性值,则可以做以下优化:使用字符串的形式监听对象属性:
'obj.name': {
// 执行方法
handler(oldValue,newVal) {
console.log(oldValue)
console.log(newValue)
},
deep: true, // 深度监听
immediate: true // 第一次改变就执行
}
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
