VUE侦听器不同应用场景下的实现方式

handler:监听数组或对象的属性时用到的方法

deep:深度监听,为了发现对象内部值的变化,可以在选项参数中指定deep:true 。注意监听数组的变动不需要这么做。

immediate: 在选项参数中指定 immediate: true 将立即以表达式的当前值触发回调

tips: 只要bet中的属性发生变化(可被监测到的),便会执行handler函数;如果想监测具体的属性变化,如pokerHistory变化时,才执行handler函数,则可以利用计算属性computed做中间层。

1、普通的watch

data() {
 return { frontPoints: 0 }
},
watch: {
 frontPoints(newValue, oldValue) {
 console.log(newValue)
 }
}

2、数组的watch

data() {
 return {
 winChips: new Array(11).fill(0)
 }
},
watch: {
  winChips: {
 handler(newValue, oldValue) {
   for (let i = 0; i < newValue.length; i++) {
  if (oldValue[i] != newValue[i]) {
    console.log(newValue)        
     }
  }
   }, 
  }
}

3、对象的watch

data() {
  return {
    bet: {
      pokerState: 53,
      pokerHistory: 'local'
    }
 }
},
watch: {
  bet: {
    handler(newValue, oldValue) {
      console.log(newValue)    
},
    deep: true
  }
}

4、对象具体属性的watch[活用computed]

data() {
  return {
    bet: {
      pokerState: 53,
      pokerHistory: 'local'
    } 
  }
},
computed: {
  pokerHistory() {
    return this.bet.pokerHistory
  }
},
watch: {
  pokerHistory(newValue, oldValue) {
    console.log(newValue)
  }
}

5、对象具体属性的watch可以直接用引号把属性括起来,就可以实现对象中特定属性的监听事件:

data() {
  return {
    bet: {
      pokerState: 53,
      pokerHistory: 'local'
    }   
    }
},
watch: {
  'bet.pokerHistory'(newValue, oldValue) {
    console.log(newValue)
  }
}

6、watch和computed各自处理的数据关系场景不同

watch擅长处理的场景:一个数据影响多个数据
computed擅长处理的场景:一个数据受多个数据影响

7、method和computed触发条件不同
computed只提供了缓存的值,而没有重新计算
只有符合:1.存在依赖型数据 2.依赖型数据发生改变这两个条件,computed才会重新计算。
而methods下的数据,是每次都会进行计算的

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue侦听器(Watcher)是一种功能强大的特性,用于监听数据的变化并执行相应的操作。它可以在数据变化时执行一些逻辑,包括更新视图、发送请求或触发其他操作。下面是一些Vue侦听器的常见应用场景: 1. 数据变化时更新视图:当数据发生变化时,你可以使用侦听器来更新相关的视图。例如,你可以监听一个计算属性的变化,在其依赖的数据发生改变时,自动更新视图。 2. 异步操作:有时候你可能需要在数据变化后执行一些异步操作,例如发送AJAX请求或者触发一些副作用。你可以使用侦听器监听数据的变化,并在回调函数中执行异步操作。 3. 表单验证:在表单中,你可以使用侦听器监听用户输入的值,然后进行一些验证逻辑。当输入值发生改变时,侦听器可以检查输入是否符合要求,并做出相应的反馈。 4. 联动操作:有时候多个数据之间会存在联动关系,一个数据的变化会影响到其他数据。你可以使用侦听器监听一个数据的变化,并在回调函数中修改其他相关的数据。 5. 触发事件:当特定的数据满足某个条件时,你可以使用侦听器来触发自定义事件,以便其他组件或模块能够接收到相应的通知。 这些只是一些常见的应用场景,实际上你可以根据具体需求和业务逻辑,灵活运用Vue侦听器实现更多的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值