vue的监听属性

本文详细介绍了如何在Vue应用中使用`watch`监听数据属性的变化,包括设置深度监听、即时触发以及简写方法的使用。通过实例代码演示了如何针对不同场景配置监听器。
摘要由CSDN通过智能技术生成


vue的监听属性可以用来监听vue的属性变化(data中的属性),当data中的属性发生变化则调用watch中该属性的handle方法。

1、使用格式

watch:{
       【要监控的属性名】:{
       		deep:true,//如果要监控该属性中还有自己的属性并且所有的属性都要监控,则需要把deep设置为true,默认是false
       		immediate:true,//如果想要初始化是就调用handler方法则设置为true,默认为false
            handler(newVal,oldVal){//监听的属性变化是调用handler方法 newVal 新值,oldVal 旧值
                        console.log("handler方法调用了")
                    }
        },
        //如果只需要handler方法可简写
        【要监控的属性名】(){
                        console.log("handler方法调用了")
        },
     
}

2、测试代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="vue.js"></script>
    <title>vue的监听属性</title>
</head>
<body>
    <div id="app">
        msg:{{msg}}<input type="text" v-model="msg"></input>
    </div>
    <script>
        const vm=new Vue({
            el:"#app",
            data:{
                msg:"vue的监听属性",
                a:{
                    b:1,
                    c:2
                }
            },
            watch:{
                // msg:{
                //     deep:true,
                //     immediate:true,
                //     handler(newVal,oldVal){
                //         console.log("handler方法调用了")
                //     }
                // },
                //如果msg属性直邮handler方法可以用简写方法
                msg(){
                    console.log("handler方法调用了")
                },
                a:{
                    deep:true,
                    handler(newVal,oldVal){
                        console.log("a的handler方法调用了")
                    }
                },
                //如果只需要监听a的b属性可以这样写,一定要主要加单引号
                'a.b':{
                    handler(newVal,oldVal){
                        console.log("a的handler方法调用了")
                    }
                }
            }
        })
    </script>
</body>
</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜里都傻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值