vue watch的基本用法

watch 侦听器

watch是vue中的监听数据变化的一个选项,用于声明在数据更改时的侦听回调。

基本用法

1、是一个对象,键是要侦听的表达式(可以是data或computed或props的值),值一般是对应的回调函数。
 <div id="app">
 	a:<input type="text" v-model.number="a">
 </div>
//vue代码
 var vm=Vue.createApp({
 	data(){
    	return{
    		a:21
            }
    },
    watch:{
   //可以是key:value的形式
    	a(){
            console.log('a改变了')            
        }       
    }
    vm.mount('#app')//挂载dom
	vm.a='666'  //数据发生变化
})
2、函数a可以接收两个形参,分别是,newValue,oldValue-见名知意,一个是新值,一个是旧值。
a(newValue,oldValue){
    console.log('现在的值'+newValue);
    console.log('更新之前的值'+oldValue);
}
3、也可以是字符的写法,存放的是定义在methods中的函数名 如:b:‘fn’
 methods:{
   fn(newValue,oldValue){
        console.log(newValue,oldValue)
   }   
 },
 watch:{
     b:'fn'   //fn是一个函数
 }
4、也可以侦听到对象中的某个属性的变化,比如 ‘obj.sid’:function(){} 只监听对象的某个具体属性,可以避免其他属性受到监听变化。
data(){
	return{
         a:213,
         b:'阿珍',
         c:'111',
         obj:{ //侦听的对象
            sid:'123'
         }
     }
},
  watch:{
    'obj.sid':function(){  //侦听对象obj中sid属性的变化            
          console.log('newValue:'+newValue);
    }
 }
5、key:value的形式 ,value可以是一个对象,处理函数要写在handler属性中, 比如 c:{}
  1. deepimmediate是watch中额外的选项,还有其他的watch属性。

deep:true/false 深度监听,意思是如果没有开启deep是无侦听到对象中内部属性的变化,如果想侦听到对象中内部的或者更深一层属性的变化,开启deep就能。注意:深度侦听需要遍历被侦听对象中的所有嵌套的
property,当用于大型数据结构时,开销很大。因此请只在必要时才使用它,并且要留意性能。

immediate:true/false 无论值是否发生改变,时刻都会监听

  1. 建议用对象+handler函数的写法
6、c:{ //c也可以是对象和数组,c.某个属性,但是不支持更复杂的表达式,如c.d.f 详细看官方文档
handler(newValue,oldValue){
 	console.log('c'+newValue,oldValue);
},
deep:true ,//启用深度监听
immediate:true  //侦听器创建时触发,第一次调用时,旧值为undefined。
},
7、key:value的形式 ,value可以是一个数组,数据里面可以存放跟形式的数据,字符串、函数、对象(handler)等
 d:[
 // 数组的每一项可以是对象的形式、字符串的形式、handler对象等
     'fn1',
      function(newValue,oldValue){
          console.log('123');
      }
 ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿珍敲code

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

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

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

打赏作者

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

抵扣说明:

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

余额充值