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 // 第一次改变就执行 } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。