vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > watch里面的deep和immediate作用

watch里面的deep和immediate作用及说明

作者:扛把子小雪

这篇文章主要介绍了watch里面的deep和immediate作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

watch里面的deep和immediate作用

先看下问题

faterVisible:这个是父组件中传值到子组件中的监听父组件的打开状态的值

首次父组件打开时,没有加immediate时,不会走对应的方法,第二次打开时才会执行

于是,我加了immediate。。。这样问题就解决了呢

watch属性deep和immediate区别

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  // 第一次改变就执行
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文