watch事件监听

本文详细介绍了Vue.js中Watch的使用方法,包括监听data属性、计算属性的变化,以及如何进行深度监听和立即监听。此外,还展示了如何监听路由变化。

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

监听属性都可以监听哪个内的值改变?
	    1. data内的数据
	    2. 计算属性内的值
	    3. 监听路由
	    4. 父传子的props数据的变化

<template>
	<div>
			//监听属性  watch和 data同一级 
				watch: {
					要监听的值(新值,旧值){
						
					}
				}
				
			//如果说要开启立即监听 (一进入页面立马触发)  深度监听 (要监听引用数据类型的值的改变)和 data同一级
				watch: {
					要监听的值: {
						hanlder(newVal,oldval){
							
						},
						immediate: true // 立即监听
						deep: true // 深度监听
					}
				}
			
		
		
		<h1>{{num}}</h1>
		<pre>{{obj}}</pre>
		<p>计算属性: {{numCom}}</p>
		<button type="button" @click="add">1</button>
	</div>
</template>

<script>
	export  default {
		data:function(){
			return {
				num: 0,
				obj: {
					num:0
				}
			}
		},
		methods:{
			add(){
				this.num++
				this.obj.num++
			}
		},
		computed:{
			numCom(){
				return this.num**2
			}
		},
		watch:{
			num(newVal,oldVal){
			 	console.log('改变了1',newVal,oldVal)
			 }
			num: {
				handler(newVal,olVal){
			 		console.log('改变了1',newVal,olVal)
			 	},
		 	immediate: true, //立即监听
			deep: true//深度监听
			}
			//引用数据类型
			// obj: {
			// 	handler(newVal,oldVal){
			// 		console.log('obj的num改变了',newVal,oldVal)
			// 	},
			// 	deep: true //深度监听
			// }
			
			 'obj.num': {
			 		handler(newVal,oldVal){
			 			console.log('obj的num改变了',newVal,oldVal)
			 		}
			 },
			'obj.num'(newVal,oldVal){
				console.log('obj的num改变了',newVal,oldVal)
			},
			numCom(n,o){
				console.log('计算属性的改变',n,o)
			}
		}
	}

</script>

监听路由
在路由页面监听路由变化,如下:


<script type="text/javascript">
	export default {
		watch:{
			// $route(n,o){
			// 	console.log('路由改变了',n,o)
			// }
		}
	}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值