vue3 watchEffect,vue.$watch
本文主要通过OptionsAPI和CompositionAPI来对比手表的用法,让大家快速掌握vue3中手表的新用法。有需要的朋友可以参考一下。希望对大家有帮助。
目录
I、手表新用法1.1、手表使用语法1.2、手表监控多属性值1.3、手表监控参考数据类型2、watchEffect 3、手表与watchEffect的区别与联系3.1、手表特性3.2、手表配置项3.3、watchEffect特性3.4、手表与watchEffect的联系。
一、watch 新用法
选项式API中,watch 使用
观察:{
情绪(曲线,概率){
console.log(cur ,curVal);//最新的值
console.log(pre ,preVal);//修改以前的值
}
}
1.1、watch 使用语法
在Composition API中,使用watch时,首先要引入它。
使用语法为:
从“vue”导入{ watch }
手表(
姓名,
(curVal,preVal )={ //业务处理},
选择
)
共有三个参数,分别为:
名称:需要帧监听的属性。
(curval,pre eval)={//业务处理}箭头函数,是监控的最新值,也是本次修改前的值。这里,执行逻辑处理。
选项:配置项,监听器的配置,如是否深度监听。
当页面第一次进入时,它不会被执行。当值改变时,当前最新值和修改前的值将被打印出来。
示例1:听一个数据
从“vue”导入{ ref,watch }
导出默认值{
setup(){
const mood=ref( )
//帧监听器
手表(情绪,(曲线,预测)={
console.log(cur ,curVal);
console.log(pre ,preVal);
},{
//配置项
})
返回{
情绪
}
}
}
Watch还可以监视多个属性值。此时,传入的数据变成一个数组,配置项保持不变。
1.2、watch 监听多个属性值
示例2:监听多个属性
watch([mood,target],([curMood,curTarget],[preMood,preTarget])={
console.log(curMood ,curMood);
console.log(preMood ,pre mood);
console.log(curTarget ,curTarget);
console.log(preTarget ,preTarget);
},{
//配置项
})
1.3、watch 监听引用数据类型
当watch监听引用数据类型时,如果只监听其中一个属性,
使用语法如下:
watch(()=obj.name,(curValue,preValue)={
//帧监听引用数据类型的属性。
},{
//配置项
})
第一个参数是回调函数,它返回需要监听的对象的属性。后面的参数和上面的一样。
示例3:监听框架对象的一个属性。
模板
差异
{{obj}}
输入类型=text v-model=obj.name
/div
/模板
脚本
从“vue”导入{ ref,reactive,watch }
导出默认值{
setup(){
const obj=reactive({姓名: QQ ,性别:女性 })
watch(()=obj.name,(cur,pre)={
console.log(cur ,cur);
},{ })
返回{
目标文件
}
}
}
/脚本
如果我们试图去掉属性,直接监视整个对象,我们发现手表似乎是无效的。此时,我们需要引入watchEffect。
二、watchEffect
WatchEffect也是一个帧监听器和一个副作用函数。它会监听被引用数据类型的所有属性,不需要特定于某个属性。一旦运行,它将立即监听,当组件被卸载时,它将停止监听。
示例4:监听对象
模板
差异
{{obj}}
输入类型=text v-model=obj.name
输入类型=text v-model=obj.sex
/div
/模板
脚本
从“vue”导入{ reactive,watchEffect }
导出默认值{
setup(){
设j=reactive({姓名: QQ ,性别:女 })
watchEffect(()={
console.log(name ,obj . name);
console.log(sex ,obj . sex);
})
返回{
目标文件
}
}
}
/脚本
watchEffect参数只有一个回调函数。此时会进入刷新页面,watchEffect会打印结果。
三、watch 与 watchEffect 区别和联系
watchEffect和watcheffect都是监听器,那么它们之间是什么关系呢?
3.1、watch特点
watch功能可以添加配置项,也可以配置为空。当配置项为空时,
watch的特点为:
有惰性:运行时,不会立即执行。
更加具体:您需要添加一个监听属性。
可以访问属性之前的值:回调函数将返回最新值和修改前的值。
可配置:您可以添加配置项目。
3.2、watch 配置项
watch 的配置项可以补充watch特点上的不足,可以配置的有:
Immediate:配置是否立即执行watch属性。当值为true时,一旦运行就会立即执行。当值为false时,它将保持惰性。
深度:配置手表是否深度监控。当值为true时,它可以监视对象的所有属性。当值为false时,它会保留更多特定的功能,并且必须在特定的属性上指定。
3.3、watchEffect 特点
watchEffect 副作用函数它的特点分别为:
非惰性:一旦运行,将立即执行。
更加抽象:使用时不需要指定听谁的,直接在回调函数中使用即可。比看更难理解。
不可访问之前的值:只能取最新的值,不能取修改前的值。
3.4、watch 与 watchEffect 联系
watch的前两个特性和watchEffect的两个特性正好相反。可以通过配置项使用watchEffect功能修改watch。
示例5:观察监听对象
模板
差异
{{obj}}
输入类型=text v-model=obj.name
/div
/模板
脚本
从“vue”导入{ ref,reactive,watch }
导出默认值{
setup(){
const obj=reactive({姓名: QQ ,性别:女性 })
手表(()=obj,(cur,pre)={
console.log(cur ,cur);
},{
即时:真的,
深:真的
})
返回{
目标文件
}
}
}
/脚本
这篇关于vue 3中watch和watchEffect的新用法的文章就到这里了。关于vue 3中的watch和watchEffect的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。