vue中watch的简单使用

本文介绍了Vue中watch的基本概念和常见使用场景,通过两个示例展示了如何利用watch监听数据变化并实时更新视图。在watch中,当数据变化时,回调函数接收到新值和旧值,可用于复杂逻辑处理。同时,文章提到在对象监测时,设置deep选项以及immediate属性的用法,并强调了避免在watch中使用箭头函数以保持正确的上下文。
摘要由CSDN通过智能技术生成

vue中watch的简单使用

一、watch的概念

监测 Vue 实例变化的一个表达式或方法。回调函数得到的参数为新值和旧值,用一个函数取代。

二、watch的使用场景

1、父组件应用子组件时传入一个参数,当父组件的数据有变化时,子组件监听父组件数据并实时更新
2、一个数据影响多个数据

三、demo的使用
1、demo1


<div id="myDiv">
    <input type="text" v-model="num1">
    <span>X</span>
    <input type="text" v-model="num2">
    <span>=</span>
    {{num3}}
</div>

<script type="text/javascript">

    new Vue({
        el:"#myDiv",
        data:{
            num1: 0,
            num2: 0,
            num3: 0
        },
        watch:{
            num1(newVal,oldVal){
                this.num3=this.num1*this.num2
            },
            num2(newVal,oldVal){
                this.num3=this.num1*this.num2
            }
        }
    })

</script>

2、demo2


<div id="myDiv">
    <input type="text" v-model="num1">
    <span>X</span>
    <input type="text" v-model="num2">
    <span>=</span>
    {{num3}}
</div>

<script type="text/javascript">

    new Vue({
        el:"#myDiv",
        data(){
            return{
                num1: 0,
                num2: 0,
                num3: 0
            }
        },
        watch:{
            num1(newVal,oldVal){
                this.num3=this.num1*this.num2
            },
            num2(newVal,oldVal){
                this.num3=this.num1*this.num2
            }
        }
    })

</script>

在这里插入图片描述
当在输入框中动态更改值时
在这里插入图片描述
两者都可以实现页面数据的动态替换

四、使用体验

1、vue实例上的一个表达式或者一个函数计算结果的变化,回调函数得到的参数为新值和旧值。

2、对象或者数组有变更的时候,旧值与新值相同,他们的引用指向同一个对象/数组,vue不会保留变更之前值的副本

3、当监测为对象的时候(非数组情况),deep = true 可以监测对象中属性的变化,并且(监测为对象的时候,newVal == oldVal)

4、进入组件的时候,第一次并不会执行watch,是因为immediate 默认 false
当 immediate = true 的时候,进入组件会立即执行。并且可以监测到组件传递数据。
最后一点,在watch中不要使用箭头函数,因为箭头函数中的this是指向当前作用域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值