监听watch 和 深度 监听

本文介绍了如何在Vue.js中使用深度监听(deep)来监视对象内部属性的变化,通过实例演示了如何在`data`对象中设置学生对象,并在对象属性改变时触发警告。读者将学会如何正确处理复杂数据结构的监听需求。
<body>
       
        <div id="app">
            <p>{{name}}</p>
        </div>
</body>
<script>
    let vm = new Vue({
        el: "#app",
        data: {
            name:"小明"
        },
    })

    vm.$watch('name', function() {
        alert("name发生了变化");
        // this.name = "狗蛋";
    })
    document.onclick = function() {
        vm.name = 1234;
    }
</script>

深度监听

当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,比如我们 data 里有一个student对象,

需要深度监听,使用deep就可以了。

<body>
       
        <div id="app">
            <p>{{student.name}}</p>
        </div>
</body>
<script>
    let vm = new Vue({
        el: "#app",
        data: {
            name:"小明",
            student:{
                name:"123",
                age:12
            }
        },
    })

    vm.$watch('student', function() {
        alert("student.name发生了变化");
    },{
        deep:true
    })

    document.onclick = function() {
        vm.student.name="张三"
    }

    // 当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,比如我们 data 里有一个student对象,
    // 深度监听价格deep就可以了。
</script>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值