vue中watch的3种写法

 ** 1. 普通数据类型:**
         <input type="text" v-model="userName"/>  
        //监听   当userName值发生变化时触发
        watch: {
            userName (newName, oldName) {
                console.log(newName)
            }
        }
        
        watch: {
            userName: {
                handler (newName, oldName) {
                    console.log(newName)
                },
                immediate: true
            }
        }
缺点:
只有一个缺点 就是当值第一次绑定的时候 不会执行监听函数,只有当值改变的时候 才会执行
如果我们想在第一次绑定的时候执行此监听函数 则需要 设置 ** immediate为true**




 ** 2.  对象类型:**
 当需要监听对象的改变时,此时就需要设置deep为true
 第三种
        <input type="text" v-model="cityName.name" />
        data (){
            return {
                cityName: {name:'北京'}
            }
        },
        watch: {
            cityName: {
                handler(newName, oldName) {
                    console.log(newName)
                },
                immediate: true,
                deep: true
            }
        }
        注意点:如果对象的属性较多,可以之监听某一个属性    'cityName.name':
        
        
 ** 3.  数组类型:**
    数组的变化不需要深度监听

**注意点:**
    在watch中不要使用箭头函数,因为箭头函数中的this是指向当前作用域

 


posted @   方方面  阅读(24709)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示