watch监听 ,监听顺序 vue

watch监听 ,监听顺序 vue

一、watch监听有2种写法:
  1. 第一种是简写:
// 监听name变化
watch: {
	name(n) {
		console.log(n)
	}
}
  1. 第二种:使用监听属性:mmediatedeep
  • immediate:immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样,不会在绑定的时候就执行;
  • deep其值是true或false;确认是否深入监听。deep的意思就是深入观察,监听器会一层层的往下遍历,给对象的所有属性都加上这个监听器,deep属性适合用在对象和数组,因为Vue 不能检测到对象属性的添加或删除。
watch: {
	// 监听数组的变化
	list: {
		handler(n) {
			// 执行方法
			console.log(n)
		},
		deep: true,
		immediate: true
	}
}
二、watch监听执行顺序

在项目中遇到会同时监听2个data变量,在这两个data变量监听事件中会执行同样的事件,但是不知道执行顺序,现在这里记录一下。比如:watch监听name和list,name监听写在list前面,那就是先执行name的监听事件,再执行list的监听事件,按照先后顺序执行。

watch: {
	name: {
		handler(n) {
			console.log("监听name")
			this.getList()
		},
		immediate: true
	},
	list: {
		handler(n) {
			console.log("监听list")
			this.getList()
		},
		deep: true,
		immediate: true
	}
}

输出结果截图:
在这里插入图片描述
我之前一直以为watch监听是无序的,只是用来监听data变量的,没想到会有执行顺序,但是在项目中遇到watch监听2个data变量会调用同样的方法事件,由于监听的先后顺序不一样,返回的结果和我一开始想的不一样,之后我想做一下这个watch监听执行顺序的demo,在此记录一下,以后方便查找。

发布了41 篇原创文章 · 获赞 3 · 访问量 6382

猜你喜欢

转载自blog.csdn.net/weixin_40509884/article/details/103679228
今日推荐