当前位置: 首页 > news >正文

vue3学习 【5】watch的使用

什么是watch

当我们需要根据一个数据的变化来进行一些操作的时候我们需要使用侦听器,它能够在响应式数据发生变化的时候触发提供的回调函数

基础侦听

watch 可以侦听不同的数据源。例如:

  1. ref
  2. 计算属性
  3. 响应式对象
  4. getter函数
  5. 多个数据源组层的数据
const x = ref(0)
const y = ref(0)// 单个 ref
watch(x, (newX) => {console.log(`x is ${newX}`)
})// getter 函数
watch(() => x.value + y.value,(sum) => {console.log(`sum of x + y is: ${sum}`)}
)// 多个来源组成的数组
watch([x, () => y.value], ([newX, newY]) => {console.log(`x is ${newX} and y is ${newY}`)
})

不能直接侦听响应式对象的属性,应使用如下代码

// 提供一个 getter 函数
watch(() => obj.count,(count) => {console.log(`count is: ${count}`)}
)

深层侦听器

如果直接传入响应式对象,会默认创建深层监听,该回调函数会在所有嵌套的数据是触发。
如果我们想只监听对象中的某个属性发生变化在触发则使用如下代码.

watch(() => state.someObject,() => {// 仅当 state.someObject 变化时触发}
)

如果我们想要显式的声明可以使用watch的第三个参数{deep:treue}来转换为强制侦听。

立即执行

有时候我们需要一进入页面就执行侦听器一次,那我们可以使用watch的第三个参数{immediate:treue}`来立即执行。

watchEffect的使用

  1. watchEffect 是立即执行一次的,不需要指定immediate
  2. watch 只会追中明确侦听的数据源,而watchEffect 会自动追中所有能访问到的响应式数据。
watchEffect(async () => {const response = await fetch(`https://jsonplaceholder.typicode.com/todos/${todoId.value}`)data.value = await response.json()
})

TIP
watchEffect 仅会在其同步执行期间,才追踪依赖。在使用异步回调时,只有在第一个 await 正常工作前访问到的属性才会被追踪。

回调触发时机

默认情况下,侦听器回调会在父组件更新 (如有) 之后、所属组件的 DOM 更新之前被调用。这意味着如果你尝试在侦听器回调中访问所属组件的 DOM,那么 DOM 将处于更新前的状态。

如果想在侦听器回调中能访问被 Vue 更新之后的所属组件的 DOM,你需要指明 flush: ‘post’ 选项:

watch(source, callback, {flush: 'post'
})watchEffect(callback, {flush: 'post'
})

后置刷新的 watchEffect() 也可以使用 watchPostEffect()

相关文章:

vue3学习 【5】watch的使用

什么是watch 当我们需要根据一个数据的变化来进行一些操作的时候我们需要使用侦听器,它能够在响应式数据发生变化的时候触发提供的回调函数 基础侦听 watch 可以侦听不同的数据源。例如: ref计算属性响应式对象getter函数多个数据源组层的数据 cons…...

PyTorch深度学习快速入门

PyTorch深度学习快速入门 1.PyTorch环境配置及安装2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)3.为什么torch.cuda.is_available()返回false4.python学习中两大法宝函数(也可用在pytorch)5.pycharm和jupyter&#xf…...

种花

分情况&#xff1a; 第一盆k种选择&#xff0c;之后全部k-1种选择 每次相乘结果对1e97取模 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n const int N 1e9 7;int main() {ios::sync_with_stdio(f…...

Android Shadow插件化框架分析与集成(二)

本文索引 前言插件打包后如何交给宿主使用?宿主加载插件代码分析全局初始化操作加载插件activity测试过程中遇到的问题报错 1 :报错2:报错3 :二次开发支持多插件、多进程功能mPpsController 的构造方式mPluginLoader的构造方式多插件如何改造前言...

Go 与 Rust:导航编程语言景观

在当今构建软件时&#xff0c;开发者在编程语言上有着丰富的选择。两种脱颖而出的语言是 Go 和 Rust - 都很强大但却截然不同。本文将从各种因素比较这两种语言&#xff0c;以帮助您确定哪种更适合您的需求。 我们将权衡它们在并发、安全性、速度、互操作性等方面的方法。我们将…...

包管理工具之npm也慌了?

起因 因为npm的种种问题,我很早就换成了pnpm和yarn(但是其实npm也在使用),已经很久没有关注npm的功能更新了。最近无意间进入Node18版本的安装目录,发现其除了常规的node,npm等默认安装了一个新的包corepack,这个就是今天我要分享的东西了。 注: 我因为18版本的node上…...

mobile app 安全扫描工具MobSF了解下

可以干啥&#xff1a; static 静态分析 dynamic 动态分析 可以用来渗透了 如何docker安装 docker image 下载地址https://hub.docker.com/r/opensecurity/mobile-security-framework-mobsf/ setup 两行即可 1 docker pull opensecurity/mobile-security-framework-mobsf…...

Gophish+EwoMail 自建钓鱼服务器

GophishEwoMail 自建钓鱼服务器 文章目录 GophishEwoMail 自建钓鱼服务器1.前提准备2.搭建EwoMail邮件服务器1&#xff09;Centos7 防火墙操作2&#xff09;设置主机名3&#xff09;host配置4&#xff09;安装EwoMail5&#xff09;获取DKIM6&#xff09;端口服务介绍7&#xff…...

Dockerfile(5) - CMD 指令详解

CMD 指定容器默认执行的命令 # exec 形式&#xff0c;推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...]# 作为ENTRYPOINT的默认参数 CMD ["param1","param…...

使用 Gradle 版本目录进行依赖管理 - Android

/ 前言 / 在软件开发中&#xff0c;依赖管理是一个至关重要的方面。合理的依赖版本控制有助于确保项目的稳定性、安全性和可维护性。 Gradle版本目录&#xff08;Version Catalogs&#xff09;是 Gradle 构建工具的一个强大功能&#xff0c;它为项目提供了一种集中管理依赖…...

CS_上线三层跨网段机器(完整过程还原)

以前讲过用cs_smb_beacon上线不出网机器&#xff0c;但是真实的网络拓扑肯定不止这么一层的网络&#xff01; 所以我就来搭建一个复杂一点的网络环境&#xff01;&#xff01; 当然了&#xff0c;这三台电脑之间都是不同的网段&#xff0c;&#xff08;但是同属于一个域环境&a…...

crpto 的AES算法解密为空

1. 需求 对用户密码加密存入数据库&#xff0c;修改密码时取出密码在前端解密&#xff08;保证密码前后端传输过程中为密文&#xff09;。 文档地址&#xff1a;CryptoJS - CryptoJS (gitbook.io) 2. 原代码 2.1 加密 var userpass "123456"; var aseKey &quo…...

13.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-如果没有工具就创造工具

内容参考于&#xff1a; 易道云信息技术研究院VIP课 上一个内容 &#xff1a;12.游戏网络通信存在的问题 现在把游戏网络的架构看了一个小小的大概&#xff0c;可以用它的接口发数据接收数据了&#xff0c;如果真正想用它这一套东西&#xff0c;真正核心不在于它的接口而在于…...

配置artifactory的反向代理和域名访问

一、概述 在许多情况下&#xff0c;组织会通过反向代理来提供对 Artifactory 的访问。在某些情况下&#xff0c;例如使用 Artifactory 作为 Docker 注册表&#xff0c;这种设置甚至是强制性的。为了简化反向代理的配置&#xff0c;Artifactory 提供了生成反向代理的功能&#x…...

python爬虫之协程知识点记录

一、协程 概念 协程 又称微线程(纤程)&#xff0c;是一种用户态的轻量级线程 子程序 在所有的语言中都是层级调用的&#xff0c;比如A中调用B&#xff0c;B在执行过程中调用C&#xff0c;C执行完返回&#xff0c;B执行完返回&#xff0c;最后是A执行完毕。这是通过栈实现的&a…...

安卓开发1- android stdio环境搭建

安卓开发1-android stdio环境搭建 Jdk环境搭建 1. 准备Jdk,这边已经准备好了jdk1.8.0,该文件直接使用即可 2. 系统变量添加 %JAVA_HOME%\bin JAVA_HOME 3. 系统变量&#xff0c;Path路径添加 4. 添加完成后&#xff0c;输入命令javac / java -version&#xff0c;验证环…...

qt QRadioButton 及QButtonGroup 使用

QRadioButton 放在组合框QGroupBox中&#xff0c;再点击时&#xff0c;即使有多个QRadioButton按钮&#xff0c;同时选中的也就只有一个。 如下图所示&#xff0c; 对于多个QRadioButton&#xff0c;每个按钮都写一个槽函数是不太明智的选择&#xff0c;需要将QRadioButton放在…...

【LeetCode-178】最长重复子串(动归)

目录 LeetCode718.最长重复子串 题目描述 解法1&#xff1a;动态规划 代码实现 题目链接 题目描述 给两个整数数组 A 和 B &#xff0c;返回两个数组中公共的、长度最长的子数组的长度。 示例&#xff1a; 输入&#xff1a; A: [1,2,3,2,1] B: [3,2,1,4,7] 输出&…...

1、jQuery介绍、css()、选择器、事件、动画

一、jQuery介绍&#xff1f; 1、什么是jQuery&#xff1f; 是一个JavaScript函数库 2、jQuery特点 写的少&#xff0c;做的多 3、jQuery的安装 直接下载引入 <script src"jquery-1.10.2.min.js"></script>通过cdn引入 <script src"https…...

ArcEngine 调用GP工具时,出现C++ R6034错误

1、Arcengine 调用GP工具时&#xff0c;遇到正试图在 os 加载程序锁内执行托管代码 问题 使用&#xff1a;把VS菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉。不会弹出该错误。 2 编译后运行EXE时&#xff0c;出现C R6034问题 ArcEng…...

告别串口调试!用虫洞ESP32S3-EYE开发板,5分钟把你的旧摄像头变成免驱USB摄像头

5分钟魔改指南&#xff1a;用ESP32S3-EYE将旧摄像头变身免驱USB设备 你是否曾在抽屉深处发现过几个落灰的OV2640摄像头模块&#xff1f;这些曾经活跃在创客项目中的小玩意&#xff0c;如今只需一块虫洞ESP32S3-EYE开发板&#xff0c;就能重获新生为即插即用的USB摄像头。与动辄…...

Simulink全局变量实战:Data Store Memory模块的权衡与最佳实践

1. 为什么我们需要全局变量&#xff1f; 在Simulink建模过程中&#xff0c;我们经常会遇到需要在多个模块间共享数据的情况。想象一下你在设计一个汽车控制系统&#xff0c;油门踏板模块需要将踩踏深度传递给发动机控制模块&#xff0c;同时仪表盘模块也需要这个数据来显示当前…...

使用Docker Compose V2快速部署Nextcloud私有云盘

1. 为什么选择Docker Compose V2部署Nextcloud 在开始之前&#xff0c;我们先聊聊为什么现在推荐使用Docker Compose V2来部署Nextcloud。Docker Compose V2是Docker官方在2021年推出的新一代编排工具&#xff0c;相比老旧的V1版本&#xff0c;它有几个明显的优势&#xff1a; …...

3步掌握专业歌词制作:开源LRC工具完全实战指南

3步掌握专业歌词制作&#xff1a;开源LRC工具完全实战指南 【免费下载链接】lrc-maker 歌词滚动姬&#xff5c;可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 你是否曾为制作精准的歌词同步而烦恼&#xff1f;当音乐响…...

LPDDR5 Training:从ZQ校准到WCK-DQ对齐的完整流程解析

1. LPDDR5 Training概述&#xff1a;为什么需要完整训练流程&#xff1f; 刚接触LPDDR5的朋友可能会有疑问&#xff1a;为什么内存控制器上电后不能直接工作&#xff0c;非要搞这么复杂的训练流程&#xff1f;这就像新买的跑车需要磨合期一样&#xff0c;LPDDR5在高速运行前必须…...

使用python 一键生成,PGSQL的数据字典

直接上代码#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ PostgreSQL 数据字典生成器 (Python 3.11) 生成完全离线的 HTML 文件&#xff0c;可直接双击在浏览器中打开。 """import psycopg2 import datetime import os import sys from t…...

独立开发者系列(32)——fastadmin项目中的API开发与优化实战

1. FastAdmin框架下的API开发基础 FastAdmin作为一款基于ThinkPHP5的高效后台开发框架&#xff0c;其API开发能力一直是独立开发者青睐的核心功能。我在实际项目中发现&#xff0c;很多新手容易陷入"能用就行"的误区&#xff0c;忽略了框架自带的强大特性。让我们从路…...

PCL 点云平均密度计算(版本一)【2026最新版】

目录 一、算法原理 1、计算过程 2、2024新增理解 二、代码实现 1、原始版本 2、2026新版 三、运行结果 四、pcl_isfinite 博客长期更新,本文最近一次更新时间为:2026年4月13日,添加该算法对应的最新论文和理解。 一、算法原理 1、计算过程 采样设备不同、设备距离场景远近…...

深入解析YOLOv8检测头:从DFL原理到实现细节

1. YOLOv8检测头的核心创新&#xff1a;DFL设计原理 第一次看到YOLOv8的检测头代码时&#xff0c;我盯着那个reg_max16的参数看了好久。这个看似简单的数字背后&#xff0c;藏着YOLOv8在目标检测精度上突飞猛进的秘密武器——Distribution Focal Loss&#xff08;DFL&#xff0…...

微博相册批量下载终极指南:3步轻松保存高清图片

微博相册批量下载终极指南&#xff1a;3步轻松保存高清图片 【免费下载链接】Sina-Weibo-Album-Downloader Multithreading download all HD photos / pictures from someones Sina Weibo album. 项目地址: https://gitcode.com/gh_mirrors/si/Sina-Weibo-Album-Downloader …...