vue的watch使用 监听数据变化

58 篇文章 0 订阅
49 篇文章 0 订阅

凑一篇文章 咳咳 详细解读一下vue的监听属性

watch监听的对象可以是某个已存在的值:只要这个值改变就触发当前方法。这个函数可以有两个形参,第一个是当前的值,第二个是变化后的值;当然也可以没有,下面依次类推
watch监听的对象可以是函数:当我们监听的数据发生变化时,需要执行的函数,后半句同上。
watch监听的对象也可以是method中的函数名:函数名要用引号来包裹。
watch监听的对象也可以是computed中的值:计算就改动。
watch监听的也可以是包括选项的对象

{
1,第一个值handle:其值是一个回调函数,就是监听对象对话的时候需要执行的函数
2,第二个值deep:其值true 或者 false,是否深度监听(一般监听是不能监听到对象属性值变化的,数组除外)
3,第三个值immediate:其值 true 或者 false,是否以当前的初始值执行handle函数(当值第一次绑定时,不会执行监听函数,只有值发生改变时才会执行。如果我们需要在最初绑定值的时候也执行函数,则就需要用到immediate属性。)。
}

1)通过watch监听data数据的变化,数据发生变化时,就会打印当前的值

watch: {
  data(val, newval) {
    console.log(val)
    console.log(newval)
  }
 }

watch: {
  data() {
    console.log('改变')
  }
 }
2)通过watch监听docData数据的变化,数据发生变化时,this.change_number++(使用深度监听)

watch: {
  docData: {
   handler(newVal) {
    this.change_number++
   },
   deep: true,
  immediate: false,

  }
}
3)通过watch监听data数据的变化,数据发生变化时,执行changeData方法

watch: {
  data: 'changeData' // 值可以为methods的方法名
},
methods: {
   changeData(curVal,oldVal){
      conosle.log(curVal,oldVal)
  }
}
4)通过watch监听data里对象的变化,数据发生变化时,执行changeData方法
data() {
    return {
      aaa: "first",
      bbb: "{
		ccc:1,
		ddd:2
		}"
    };
  },
watch: {
  'bbb'{
  		//也可以没有入参
   		handler(newValue,oldValue){
                        console.log('属性isHot被修改了',newValue,oldValue);
             	},
        mmediate:true,  // 该参数设置为true,可以在初始化的时候让handler调用一下    
  		deep:true	// 该参数设置为true,可以监听到对象内的属性 而不止于当前对象
		'触发执行'
	}// 值可以为bbb的对象名
}

简写
算了没啥简写
就是没有 mmediate deep 这俩属性的 入参都没有的 都可以
例如

watch: {
  docData(){
  	// docData动了就执行
  }
}

 app.$watch('isHot',function(newValue,oldValue){
            console.log('属性isHot被修改了',newValue,oldValue);
        })

这样也行 (上面app是当前vue所挂载的的实例)

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星陈~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值