vue3中watch如何使用,与watchEffect不同及联系是怎样
Admin 2022-07-12 群英技术资讯 1107 次浏览
这篇文章主要介绍了vue3中watch如何使用,与watchEffect不同及联系是怎样相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中watch如何使用,与watchEffect不同及联系是怎样文章都会有所收获,下面我们一起来看看吧。选项式API中,watch 使用
watch:{
mood(curVal,preVal){
console.log('cur',curVal);//最新值
console.log('pre',preVal);//修改之前的值
}
}
在 Composition API 中,使用 watch 时,必须先引入。
使用语法为:
import { watch } from "vue"
watch(
name ,
( curVal , preVal )=>{ //业务处理 },
options
)
共有三个参数,分别为:
name :需要帧听的属性(curVal,preVal)=>{ //业务处理 } 箭头函数,是监听到的最新值和本次修改之前的值,此处进行逻辑处理。options :配置项,对监听器的配置,如:是否深度监听。页面刚进入的时候并不会执行,值发生改变的时候,才会打印出当前最新值和修改之前的值。
示例1:监听一个数据
import { ref , watch } from "vue"
export default{
setup(){
const mood = ref("")
//帧听器
watch(mood,(curVal,preVal)=>{
console.log('cur',curVal);
console.log('pre',preVal);
},{
//配置项
})
return{
mood
}
}
}
watch 也可以监听多个属性值,此时传入的数据变成数组形式,配置项保持不变。
示例2:监听多个属性
watch([mood,target],([curMood,curTarget],[preMood,preTarget])=>{
console.log('curMood',curMood);
console.log('preMood',preMood);
console.log('curTarget',curTarget);
console.log('preTarget',preTarget);
},{
//配置项
})
watch 监听引用数据类型时,如果只监听其中某个属性时,
使用语法如下:
watch(()=>obj.name,(curValue,preValue)=>{
//帧听引用数据类型的某个属性
},{
//配置项
})
第一个参数,回调函数返回的是需要帧听对象的属性。后边的参数与上边的一致。
示例3:帧听对象某个属性
<template>
<div>
{{obj}}
<input type="text" v-model="obj.name">
</div>
</template>
<script>
import { ref , reactive , watch } from "vue"
export default{
setup(){
const obj = reactive({ name:'qq',sex:'女' })
watch(()=>obj.name,(cur,pre)=>{
console.log('cur',cur);
},{ })
return{
obj
}
}
}
</script>
如果我们试着把属性去掉,直接监听整个对象,发现watch好像失效了。此时我们就需要引入 watchEffect。
watchEffect 也是一个帧听器,是一个副作用函数。它会监听引用数据类型的所有属性,不需要具体到某个属性,一旦运行就会立即监听,组件卸载的时候会停止监听。
示例4:监听对象
<template>
<div>
{{obj}}
<input type="text" v-model="obj.name">
<input type="text" v-model="obj.sex">
</div>
</template>
<script>
import { reactive , watchEffect } from "vue"
export default{
setup(){
let obj = reactive({ name:'qq',sex:'女'})
watchEffect(() => {
console.log('name',obj.name);
console.log('sex' , obj.sex);
})
return{
obj
}
}
}
</script>
watchEffect 参数只有一个回调函数。此时刷新页面进入,watchEffect 就会打印结果。
watch 与 watchEffect 都是监听器,那么它们之间有什么关系呢?
watch 监听函数可以添加配置项,也可以配置为空,配置项为空的情况下,
watch的特点为:
watch 的配置项可以补充watch特点上的不足,可以配置的有:
immediate:配置watch属性是否立即执行,值为 true 时,一旦运行就会立即执行,值为false时,保持惰性。deep:配置 watch 是否深度监听,值为 true 时,可以监听对象所有属性,值为 false 时保持更加具体特性,必须指定到具体的属性上。watchEffect 副作用函数它的特点分别为:
watch比较难理解。watch 的前两个特点与 watchEffect 的两个特点刚好相反,watch 通过配置项可以修改成带有 watchEffect 特点。
示例5:watch 监听对象
<template>
<div>
{{obj}}
<input type="text" v-model="obj.name">
</div>
</template>
<script>
import { ref , reactive , watch } from "vue"
export default{
setup(){
const obj = reactive({ name:'qq',sex:'女' })
watch(()=>obj,(cur,pre)=>{
console.log('cur',cur);
},{
immediate:true,
deep:true
})
return{
obj
}
}
}
</script>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章我们来了解jQuery触发change事件的方法,手动触发改变事件我们需要使用到change()方法,接下来我们通过示例来了解change()方法的使用及触发改变事件的实现,感兴趣的朋友就继续往下看吧。
解构赋值是一种特殊的语法,它使我们可以将数组或对象“拆包”为到一系列变量中,因为有时候使用变量更加方便,下面这篇文章主要给大家介绍了关于JavaScript解构赋值的5个常见场景与实例的相关资料,需要的朋友可以参考下
这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助
方法:1、用“document.getElementById("id值")”语句根据id值获取h2元素对象;2、使用“h2元素对象.innerHTML="新标题内容"”或“h2元素对象.innerText="新标题内容"”语句进行修改即可。
最近做了一个手机端系统,其中遇到了父页面需要携带参数跳转至子页面的问题,现已解决,下面分享一下实现过程,感兴趣的朋友一起看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008