这篇文章主要讲解了“vue3中watch和watchEffect怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3中watch和watchEffect怎么使用”吧!
一、watch 新用法
选项式API中,watch 使用
watch:{
mood(curVal,preVal){
console.log('cur',curVal);//最新值
console.log('pre',preVal);//修改之前的值
}
}
1.1、watch 使用语法
在 Composition API
中,使用 watch
时,必须先引入。
使用语法为:
import { watch } from "vue"
watch(
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
也可以监听多个属性值,此时传入的数据变成数组形式,配置项保持不变。
1.2、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);
},{
//配置项
})
1.3、watch 监听引用数据类型
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
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
与 watchEffect
都是监听器,那么它们之间有什么关系呢?
3.1、watch特点
watch
监听函数可以添加配置项,也可以配置为空,配置项为空的情况下,
watch的特点为:
3.2、watch 配置项
watch 的配置项可以补充watch特点上的不足,可以配置的有:
3.3、watchEffect 特点
watchEffect 副作用函数它的特点分别为:
3.4、watch 与 watchEffect 联系
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>
感谢各位的阅读,以上就是“vue3中watch和watchEffect怎么使用”的内容了,经过本文的学习后,相信大家对vue3中watch和watchEffect怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!