【Vue3】回顾watch,学习watchEffect

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临,让我们一起踏上这个知识之旅!
请添加图片描述

文章目录

  • 🍋回顾watch
  • 🍋引入watchEffect
  • 🍋watch、watchEffect对比
  • 🍋注意事项
  • 🍋总结

🍋回顾watch

在介绍本节的内容之前,我们还是先准备好本节使用的初始代码

<template><div class="person"><h2>攻击:{{ gongji }}</h2><h2>防御:{{ fangyu }}</h2><button @click="changeG">攻击点数加一</button><button @click="changeF">防御点数加一</button>
</div></template><script lang="ts" setup name="Person11">import {ref} from 'vue'let gongji = ref(0)let fangyu = ref(0)function changeG(){gongji.value += 1}function changeF(){fangyu.value += 1}</script><style scoped>.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}button {margin: 0 5px;}</style>

运行结果如下
请添加图片描述

接下来我们表达我们的需求:当攻击或者防御达到十点的时候给服务器发送请求
如果我们想要使用上节的watch进行实现

<template><div class="person"><h2>攻击:{{ gongji }}</h2><h2>防御:{{ fangyu }}</h2><button @click="changeG">攻击点数加一</button><button @click="changeF">防御点数加一</button>
</div></template><script lang="ts" setup name="Person11">import {ref,watch} from 'vue'let gongji = ref(0)let fangyu = ref(0)function changeG(){gongji.value += 1}function changeF(){fangyu.value += 1}watch([gongji,fangyu],(newValue,oldValue)=>{console.log(newValue,oldValue)})</script><style scoped>.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}button {margin: 0 5px;}</style>

运行结果如下
在这里插入图片描述
接下来我们从Value中获取新的攻击和防御

watch([gongji,fangyu],(Value)=>{let [newG, newF] = Valueif(newG>=10 || newF>=10){console.log('发送请求')}})

当我们点击九次的时候没有反应
在这里插入图片描述
再点击一次,就会发送请求了
在这里插入图片描述

🍋引入watchEffect

在 Vue3 中,watchEffect 是一个非常有用的函数,用于监视响应式数据的变化并执行相应的副作用代码。与 watch 监视特定的数据源不同,watchEffect 会自动追踪其内部的响应式数据,并在这些数据变化时重新运行传入的函数。

上一段中如果我们想要监视多个数据,使其更加方便,那么watchEffect就展现了它的作用

    import {ref,watch,watchEffect} from 'vue'
 watchEffect(()=>{if(gongji.value>=10 || fangyu.value>=10){console.log('发送请求')}})

下面依然是两张对比图片
在这里插入图片描述
在这里插入图片描述

🍋watch、watchEffect对比

watchEffect可以立即运行一个函数

watch对比watchEffect

  1. 都能监听响应式数据的变化,不同的是监听数据变化的方式不同

  2. watch:要明确指出监视的数据

  3. watchEffect:不用明确指出监视的数据(函数中用到哪些属性,那就监视哪些属性)。

🍋注意事项

避免在 watchEffect 中执行会引起无限循环的操作,比如直接修改 state 中的属性。
如果需要手动清除 watchEffect,可以将其返回的清除函数保存起来,并在适当的时机调用。

Vue3 中的 watchEffect 是一个强大而灵活的工具,可以帮助我们更方便地处理响应式数据的变化,并执行相应的副作用代码。

🍋总结

合理的使用watch和watchEffect可以让我们的开发变得更加高效

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/498323.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【记录】成为创作者的第 365 天

机缘 原来 365 天过得这么快&#xff0c;想想一年前的我还只是一个啥都不懂的小白&#xff08;虽然现在懂的也不算多&#xff09;&#xff0c;只能算是刚入门吧。知道 CSDN 这个平台是偶然在朋友圈看到一条有关该平台的博客转发&#xff0c;于是便注册了账号。 还是那句话&am…

归并分治问题练习和题解

文章目录 简介排序数组原理代码 交易逆序对的总数原理代码跑的过程代码 计算右侧小于当前元素的个数原理代码 翻转对代码 简介 大家好,这里是jiantaoyab,这篇文章给大家带来的是归并类型相关的题目练习和解析,涉及到递归的题目大家可以画递归展开图来方便理解,后面的题目有点绕…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序&#xff0c;实现文件复制的功能。用法是在控制台输入&#xff1a; mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个&#xff0c;一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …

关于uniapp小程序的分包问题

开发uniapp小程序时&#xff0c;在打包上传代码时会出现超出2M的打包限制不能上传&#xff0c;那么我们该怎么做呢&#xff1f; 1.对于图片&#xff0c;将图片从后端服务取&#xff0c;尽量不要放在静态资源&#xff0c;图片体积会影响打包大小。 2.使用分包&#xff0c;tabb…

网络防御第6次作业

防病毒网关 按照传播方式分类 病毒 病毒是一种基于硬件和操作系统的程序&#xff0c;具有感染和破坏能力&#xff0c;这与病毒程序的结构有关。病毒攻击的宿主程序是病毒的栖身地&#xff0c;它是病毒传播的目的地&#xff0c;又是下一次感染的出发点。计算机病毒感染的一般过…

Cordova打包手机位置权限没有“始终允许“权限

1 找到AndroidManifest.xml文件 2 增加一行 <uses-permission android:name"android.permission.ACCESS_BACKGROUND_LOCATION" />

Linux--使用 Haproxy搭建Web群集

1、 案例概述 Haproxy是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多&#xff0c;如LVS 和 Nginx。相比较而言&#xff0c;LVS性能最好&#xff0c;但是搭建相对复杂&#xff1a;Nginx的upstream 模块支持群集功能&#xff0c;但是对群集节点健康检查功能…

Python把excel内容保存为图片(非统计图而是纯原表格数据)

一、引入 excel2img 库&#xff0c;没有的话使用 pip install excel2img进行安装 二、采用如下方法进行图片生成 excel文件名为&#xff1a;111.xlsx excel表格里面的sheet名称列表为 [Sheet1, Sheet2] 最终保存为以sheet名称.png的图片 支持跨表格合并项 import excel2i…

1、docker入门

文章目录 1、tocker简介2、tocker的安装&环境配置2、配置阿里云镜像3、基本命令1、镜像命令2、docker基本命令3、镜像基本命令4、Docker 容器常用命令 1、tocker简介 新一代的虚拟化技术 2、tocker的安装&环境配置 uname -r1、首先查看liunx的内核 yum update -y2、更…

前后端项目-part03

文章目录 5.4.4 机构名称5.4.4.1 创建实体类Company5.4.4.2 创建实体类CompanyMapper5.4.4.3 创建实体类CompanyService5.4.4.4 创建实体类CompanyController5.4.4.5 后端测试5.4.4.6 修改basic.js5.4.4.7 修改course.vue5.4.4.8 测试5.4.5 课程标签5.4.5.1 效果5.4.5.2 修改co…

Redis的应用——接口幂等性,分布式锁,基于注解+拦截器的接口幂等改进

目录 引出接口幂等&分布式锁接口幂等性Redisson框架接口幂等改进 缓存三兄弟&#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Redis的应用——接口幂等性&#xff0c;分布式锁&#xff0c;基于注解拦截器的接口幂等改进 接口幂等&分布式锁 系统…

c++学习记录 deque容器—构造函数

1、deque容器基本概念 1.1 功能 双端数组&#xff0c;可以对头端进行插入删除操作 1.2 deque与vector区别&#xff1a; vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低deque相对而言&#xff0c;对头部的插入删除速度比vector快vector访问元素…