当vue项目中需要对某个值进行监听做一些操作的时候我们会用到watch进行监听:

1:监听普通属性:

单一字符串,布尔值,等等

data() {
			return {
				dvid: '',
				goodsInfo: [],
				userInfo:{},
				closeTime:0,//关仓倒计时
			}
		},
watch:{
		closeTime(newVal, oldVal){
			console.log(`${newVal} : ${oldVal}`);
			}
		},

注意:watch第一次绑定值的时候不会执行监听,如果需要第一次就执行监听 则需要设置:immediate: true

watch:{
		closeTime: {
				handler (newName, oldName) {
					console.log(`${newVal} : ${oldVal}`);
				},
				immediate: true
			}
		}

2:监听对象:

监听对象需要用到深度监听 设置deep:true

watch: {
			closeTime: {
				handler(newName, oldName) {
					console.log(`${newVal} : ${oldVal}`);
				},
				immediate: true,
				deep: true
			}
		}

可以可以单独监听对象的某个属性 对象.xxx

监听数组:

注意:与对象监听一样 区别在于数组不需要深度监听

tips:watch中不能使用箭头函数 箭头函数this指向为当前作用域

Logo

前往低代码交流专区

更多推荐