Vue事件监听Watch的使用

本文详细介绍了Vue.js中watch的使用方法,包括基本的变量监听和对象属性值监听。通过watch,你可以实现在变量变化时执行特定的回调函数,例如在data数据增大或减小时进行不同的操作。此外,还展示了如何监听对象属性的变化并触发相应的警告提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当事件监听到变量的变化时,就会执行Watch中对应的方法

watch的使用方法

1.一般值监听

data(){
  return{
     data:0
  }
},
//watch与data同级
watch:{
  //以需要监听的变量的名字作为函数名称
  //(非必须)可以接收两个参数 第一个:变化后的值;第二个:变化前的值 
  //当监听data数据变化的时候会执行这个函数
  data(newvalue,oldvalue){
    if(newvalue>oldvalue){
     console.log('变大了')
     }else{
       cosole.log('变小了')
     }
  }
},

2.对象的属性值监听

    'ruleForm.content' (newVal, oldVal) {
      // if (newVal.content !== '' && oldVal.content === '') {
      //   alert('正在输入')
      // }
      alert('111')
    }
### 使用 `watch` 选项监听数据变化Vue 2 中,`watch` 是一个用于侦听特定的数据属性并执行回调函数的对象。当被监视的属性发生变化时,相应的处理程序就会触发。 #### 基本语法 ```javascript new Vue({ el: '#app', data() { return { message: 'Hello' } }, watch: { message(newValue, oldValue) { console.log('message changed from', oldValue, 'to', newValue); } } }); ``` 此代码片段展示了如何定义一个简单的 watcher 来监控 `message` 属性的变化[^1]。 #### 处理异步操作或开销较大的计算 如果需要在一个复杂的状态更新之后做一些事情,比如发起网络请求或其他昂贵的操作,则可以利用立即执行一次的方式: ```javascript watch: { someDataProperty: { handler(newVal, oldVal){ // 执行一些逻辑... }, immediate: true, deep: false } } ``` 这里设置了两个额外参数:`immediate` 和 `deep`。前者使得这个观察者会在组件创建完成后立刻调用;后者允许更深层次地监测对象内部变化。 #### 深度监听数组或对象中的嵌套属性 对于复杂的 JavaScript 对象或数组来说,默认情况下只检测顶层键名的变化。为了跟踪这些结构内更深一层的内容改变,应该开启深度模式(`deep`)。 ```javascript data(){ return{ user:{ name:'John Doe', address:{city:"New York"} } }; }, watch:{ 'user.address.city':function (newValue,oldValue){ alert(`${oldValue} -> ${newValue}`); } } // 或者使用深拷贝方式 watch: { user: { handler(val) { /* ... */ }, deep: true } } ``` 上述例子说明了两种不同的方法来实现对深层嵌套属性的有效监听——一种是指定路径字符串形式,另一种则是通过启用 `deep` 选项来进行全面深入的追踪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值