欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > uniapp vue3 watch监听使用情况

uniapp vue3 watch监听使用情况

2025/5/13 17:39:57 来源:https://blog.csdn.net/m0_67880202/article/details/142848062  浏览:    关键词:uniapp vue3 watch监听使用情况

使用setup 语法糖

首先引入watch

import {watch} from 'vue'

使用情况1:监听ref基本数据类型

const data = ref('') //基本数据类型:string | number | boolean | BigInt | Symbol | null | undefined;
watch(data,(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})

使用情况2:监听ref引用类型

const data = ref({})
watch(data,(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
}, { deep: true }) //需要手动开启深度监视 { deep: true }

使用情况3:监听reactive定义的数据

注意:reactive 默认自动开启了深度监视,并且该深度监视不可通过配置项 { deep: false } 关闭

const data = reactive({})
watch(data,(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
}, { deep: false}) //关闭无效

使用情况4:监听ref或reactive中具体的属性值的变化

注意:不管该属性值是基本数据类型还是引用数据,都建议使用函数形式

const data = reactive({name:''})
watch(()=>data.name,(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})const data = ref({age:''})
watch(()=>data.value.age,(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})const data = ref({config:{n:'' }
})
watch(()=>data.value.config,(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})

使用情况5:监听多个数据

const data1 = reactive({name:''})
const data2 = ref({age:''})
watch([()=>data1.name,()=>data2.value.age],(newVal, oldVal)=> {console.log(`新值是:${newVal}`, `旧值是${oldVal}`);
})

参考文章:带你吃透 Vue3 中 侦听器 【watch ,watchEffect】数据监听的使用及注意事项_watcheffect深度监听-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词