77百科网
当前位置: 首页 生活百科

vuewatch使用教程学习(vue3学习笔记)

时间:2023-06-06 作者: 小编 阅读量: 1 栏目名: 生活百科

页面刚进入的时候并不会执行,值发生改变的时候,才会打印出当前最新值和修改之前的值。此时刷新页面进入,watchEffect就会打印结果。相比watch比较难理解。

vuewatch使用教程学习?选项式API与之前写法相同,本篇文章主要通过 Options API 和 Composition API 对比 watch 的使用方法,让您快速掌握 vue3 中 watch 新用法建议收藏,下面我们就来聊聊关于vuewatch使用教程学习?接下来我们就一起去了解一下吧!

vuewatch使用教程学习

选项式API与之前写法相同,本篇文章主要通过 Options API 和 Composition API 对比 watch 的使用方法,让您快速掌握 vue3 中 watch 新用法。建议收藏!

一、watch 新用法

选项式API中,watch 使用

watch:{ mood(curVal,preVal){console.log('cur',curVal);//最新值console.log('pre',preVal);//修改之前的值 }}

2.1、watch 使用语法

在 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.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);},{//配置项})

2.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的特点为:

  1. 有惰性:运行的时候,不会立即执行。
  2. 更加具体:需要添加监听的属性。
  3. 可以访问属性之前的值:回调函数内会返回最新值和修改之前的值。
  4. 可配置:可以添加配置项。

3.2、watch 配置项

watch 的配置项可以补充watch特点上的不足,可以配置的有:

  1. immediate:配置watch属性是否立即执行,值为 true 时,一旦运行就会立即执行,值为false时,保持惰性。
  2. deep:配置 watch 是否深度监听,值为 true 时,可以监听对象所有属性,值为 false 时保持更加具体特性,必须指定到具体的属性上。

3.3、watchEffect 特点

watchEffect 副作用函数它的特点分别为:

  1. 非惰性:一旦运行就会立即执行。
  2. 更加抽象:使用时不需要具体指定监听的谁,回调函数内直接使用就可以。相比watch比较难理解。
  3. 不可访问之前的值:只能访问当前最新的值,访问不到修改之前的值。

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>

好了小编今天的文章就到此结束了,喜欢我的可以点个关注哦!

    推荐阅读
  • 陌生的恋人什么时候播(陌生的恋人介绍)

    陌生的恋人什么时候播?陌生的恋人什么时候播该剧于2021年7月12日在爱奇艺和腾讯视频首播。《陌生的恋人》是由黄天仁执导,宋茜、欧豪领衔主演,张赫、何杜娟、戴景耀、范静祎、王艺哲、陶海主演,田雷友情出演的爱情悬疑剧。该剧讲述了小提琴家罗芊怡与未婚夫霍佑泽共同携手拨开迷雾、追求真爱的故事。

  • 共工怒触不周山文言文翻译(共工怒触不周山原文及译文)

    下面希望有你要的答案,我们一起来看看吧!共工怒触不周山文言文翻译译文从前,共工与颛顼争夺部落天帝之位,共工一怒之下,用头撞击不周山,天柱折了,拴系着地的大绳子也断了。天向西北方向倾斜,所以日、月、星辰都向这里移动,地向东南方向下塌,所以江河道路上的流水尘埃都在这里汇集。原文昔者,共工与颛顼争为帝,怒而触不周之山,天柱折,地维绝。天倾西北,故日月星辰移焉,地不满东南,故水潦尘埃归焉。

  • 自我介绍30秒五句短话(自我介绍30秒五句短话范文)

    “诚信”,言不信者,行不果。只有一个言而有信的人,才能得到别人的信任,才能在社会中立足。“信任”,立谈中,生死同,一诺千金重。“回信”,我从来都是一个积极面对生活的人,如果有一个机会摆在我的面前,我会积极做出的回应,尽自己的全力去抓住它。如果我是一个人力资源的高管,发现一个很有潜力的潜在的员工,我一定会给他一次机会,给他“回信”。

  • 伊利奶粉3段怎么样(婴儿奶粉十大名牌排行榜)

    伊利金领冠菁护采用A2奶源,研究表明,只含A2蛋白的牛奶会减轻中国学龄前儿童牛奶不耐受引起的胃肠道症状,并且可以相应地改善其认知表现。本次评测的8款奶粉中有2款添加了CPP,其中完达山亲蓓含量比较优秀。本次评测的8款奶粉均添加有益生元。与免疫力相关的成分奶粉中与免疫力相关的成分主要有乳铁蛋白、核苷酸、益生菌、牛磺酸等。

  • 拒绝网络欺凌内容20个字(学生欺凌有了明确定义)

    27日,记者从教育部召开的新闻发布会了解到,学生欺凌有了明确定义。为有效预防中小学生欺凌行为发生,经国家教育体制改革领导小组会议审议通过,教育部等11部门日前印发《加强中小学生欺凌综合治理方案》。此外,欺凌的结果要件为造成身体伤害、财产损失或精神损害,这也是区分学生间嬉戏打闹、欺凌和暴力的关键。

  • 月季 月季花的养殖方法和注意事项

    月季的别称月季,是蔷薇科常绿或半常绿低矮灌木,也被称作“月月红”,更是被冠以了“花中皇后”的美称。月季的形态特征月季属于直立灌木,也是蔓状或攀援状藤本植物。喜好阳光,但强光直射过度也会影响花蕾正常发育,易使花瓣焦枯。一般来说,22-25℃为月季生长的最佳环境温度,夏季的高温则会影响开花。不只是花,它的根和叶都能入药,有着活血消肿与消炎解毒的不错功效。

  • 鲫鱼汤的正确做法(鲫鱼汤怎么做才好吃)

    鲫鱼汤的正确做法食材:鲫鱼1条,姜1颗,葱若干,食用油适量,盐适量。锅里下一勺食用油烧热,下入鲫鱼,小火慢煎,将鲫鱼煎至两面变微黄,加适量盐使鱼肉更入味。加入开水没过鲫鱼,开大火煮10分钟。冷水会使鱼肉回缩,煮好后肉质变柴,相比之下加开水更好,开水能使肉质不变柴,吃起来也不会腥。鱼汤里再加适量盐调味,即可盛出,撒上葱花,一份美味的鲫鱼汤就做好了。

  • 堤堤的意思(堤堤如何理解)

    接下来我们就一起去研究一下吧!堤堤的意思堤堤释义:鸟群飞貌。字从土,从是,是亦声。“是”意为“对准”、“正对”,引申为“正面”。“土”与“是”联合起来表示“正对着来水方向的土坝”。

  • 什么是传真(关于什么是传真介绍)

    接下来我们就一起去了解一下吧!什么是传真传真是指用电话传输经扫描的印刷材料,通常电话线路与打印机或其他输出设备相连接。原始文件被传真机扫描并转换为位图文件,传真机把传输内容看作单独的确定的图像。在这种数字形式下,信息被作为电信号通过电话系统传输。接受传真的机器重新恢复那个电码图像并打印出一张那个文件的复印件。