vue3(3.0.4)中watch 使用
 
1. watch监听 ref 定义的响应式数据
 
setup() {
		let name = ref("张三");
		
        
		watch(name, (newValue, oldValue) => {
			console.log(newValue, oldValue);
		});
		return {
			name,
		};
	},
 
2.watch监听 ref 定义的多个响应式数据
 
setup() {
		let name = ref("张三");
        let msg = ref('hello')
		
		watch([name,msg], (newValue, oldValue) => {
			console.log(newValue, oldValue);
		});
		return {
			name,
            msg
		};
	},
 
或者 vue3可以同时出现多个watch
 
setup() {
		let name = ref("张三");
        let msg = ref('hello')
        
		watch(name, (newValue, oldValue) => {
			console.log(newValue, oldValue);
		});
		
		watch(msg, (newValue, oldValue) => {
			console.log(newValue, oldValue);
		});
		return {
			name,
            msg
		};
	},
 
3.watch监听 reactive 定义的响应式数据的全部属性
 
setup(props) {
		let name = ref("张三");
        let msg = ref('hello')
		let obj = reactive({
			a: 18,
			b: {
				c: {
					d: 23,
				},
			},
			g: 25
		});
		watch(name, (newValue, oldValue) => {
			console.log(newValue, oldValue);
		});
		watch(msg, (newValue, oldValue) => {
			console.log(newValue, oldValue);
		});
		watch(obj, (newValue, oldValue) => {
            console.log('obj已经变化了');
			console.log(newValue, oldValue);
		},{deep:false});
		return {
			name,
			obj,
            msg
		};
	},
 
 
4.watch监听 reactive 定义的多个响应式数据的某个属性
 
 
watch(()=>obj.a, (newValue, oldValue) => {
			console.log(newValue, oldValue);
			
			
		});
 
 
watch(()=>obj.b, (newValue, oldValue) => {
			console.log(newValue.c.d, oldValue.c.d);
		},{deep:true});
 
5.watch监听 reactive 定义的多个响应式数据的某些属性
 
 
watch([()=>obj.a,()=>obj.g], (newValue, oldValue) => {
			console.log(newValue, oldValue);
			
			
		});