#Vue3篇:watch、watchEffect、watchPostEffect、watchSyncEffect的区别

news2024/9/20 16:38:13

Vue 3 中的 watch、watchEffect、watchPostEffect 和 watchSyncEffect 都是用于监视响应式数据变化的 API,但它们之间有一些区别,下面详细介绍它们的使用方法和不同之处。

watch

watch 是 Vue 2 中的 API,Vue 3 中也保留了这个 API。它是一个侦听器,可以用于侦听单个变量或对象的属性,可以传入一个回调函数,在值变化时执行该函数。

watch(() => count.value, (newValue, oldValue) => {
  console.log(`count 值从 ${oldValue} 变为 ${newValue}`)
})

上面的代码使用了 watch API 监听了 count 变量的变化,当 count 的值发生变化时,控制台就会输出新旧值。

watchEffect

watchEffect 是 Vue 3 中新增的 API,它接受一个函数作为参数,会自动执行这个函数,并在函数执行过程中收集函数所依赖的响应式数据。如果在函数执行过程中访问了某个响应式数据,那么当这个响应式数据发生变化时,watchEffect 会自动重新执行该函数。watchEffect 的回调函数没有传递新值和旧值的参数。

const count = ref(0)
watchEffect(() => {
  console.log(`count 值为 ${count.value}`)
})

上面的代码使用了 watchEffect API 监听了 count 变量的变化,并在回调函数中打印出 count 的值。

watchPostEffect

watchPostEffect 也是 Vue 3 中新增的 API,它接受一个函数作为参数,和 watchEffect 类似,会自动执行这个函数,并在函数执行过程中收集函数所依赖的响应式数据。但是和 watchEffect 不同的是,watchPostEffect 会在函数执行结束后再次执行一次,这次执行没有任何的依赖追踪。

const count = ref(0)
watchPostEffect(() => {
  console.log(`count 值为 ${count.value}`)
})

上面的代码使用了 watchPostEffect API 监听了 count 变量的变化,并在回调函数中打印出 count 的值。和 watchEffect 不同的是,watchPostEffect 会在函数执行结束后再次执行一次。

watchSyncEffect

watchSyncEffect 也是 Vue 3 中新增的 API,它接受一个函数作为参数,和 watchEffect 类似,会自动执行这个函数,并在函数执行过程中收集函数所依赖的响应式数据。但是和 watchEffect 不同的是,watchSyncEffect 会立即执行一次回调函数,而不是等到下一个事件循环才执行。

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script setup lang="ts">
import { ref, watchSyncEffect } from "vue"

const count = ref(0)

const increment = () => {
  count.value++
}

watchSyncEffect(() => {
  console.log(`Count is now ${count.value}`)
})
</script>

</script>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

23种设计模式之观察者模式(黑马程序员)

观察者模式 一、概述二、结构三、实现四、总结在最后 一、概述 观察者模式又被称为发布-订阅模式(Publish/Subscribe)模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时&#xff0c;会通知所有…

java 键值对详解及java键值对代码

在 Java中&#xff0c;对象可以理解为一个列表。这个列表里面的每个元素都是一个“键”&#xff0c;而每个“键”都是一个值。 键值对的概念&#xff0c;并不是在 Java中第一次出现&#xff0c;在 java 1.x中就已经有了。那时候它的意思是在一个命名空间中建立两个名字相同的对…

利用三维CNN对阿尔茨海默病进行多模态研究

文章目录 Is a PET All You Need? A Multi-modal Study for Alzheimer’s Disease Using 3D CNNs摘要方法实验结果讨论结论 Is a PET All You Need? A Multi-modal Study for Alzheimer’s Disease Using 3D CNNs 摘要 提出了一个系统评估多模态dnn的框架重新评估基于FDG-P…

Android-实现一个登录页面(kotlin)

准备工作 首先&#xff0c;确保你已经安装了 Android Studio。如果还没有安装&#xff0c;请访问 Android Studio 官网 下载并安装。 前提条件 - 安装并配置好 Android Studio Android Studio Electric Eel | 2022.1.1 Patch 2 Build #AI-221.6008.13.2211.9619390, built …

如何使用命令行添加配置码云仓库SSH秘钥-git仓库也一样

使用命令行添加配置码云仓库SSH秘钥 为什么要如何使用命令行添加配置码云仓库SSH秘钥&#xff1f;生成密钥你可以按如下命令来生成 sshkey:可以参考下图执行指令 添加密钥登录你的码云&#xff0c;鼠标移入头像&#xff0c;设置。点击 SSH公钥&#xff0c;打开配置页面&#x…

新型数字智慧城市综合趋势解决方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 新型智慧城市解决方案总体架构 新型智慧城市顶层规划&#xff08;咨询&#xff09;服务概述 服务定义&#xff1a;提供面向城市及其产业的智慧化咨询服务&#xff0c;涵盖需求…

linux——进程的概念与状态

大家好&#xff0c;我是旗帜僵尸。今天我将带领大家学习进程的概念。 本篇文章将继续收录于我的linux专栏中&#xff0c;若想查看关于linux其它知识的文章也可以点击右方链接。旗帜僵尸——linux 文章目录 一、进程概念冯诺依曼体系结构OS&#xff08;操作系统Operator System&…

突破传统监测模式:业务状态监控HM的新思路

作者&#xff1a;京东保险 管顺利 一、传统监控系统的盲区&#xff0c;如何打造业务状态监控。 在系统架构设计中非常重要的一环是要做数据监控和数据最终一致性&#xff0c;关于一致性的补偿&#xff0c;已经由算法部的大佬总结过就不在赘述。这里主要讲如何去补偿&#xff…

电子阅读器市场角力,AI成为关键变量

配图来自Canva可画 近年来&#xff0c;随着国家“书香型社会”建设政策的出台&#xff0c;公众的阅读需求正在逐年增加&#xff0c;各类读书产品和读书活动&#xff0c;也如同雨后春笋般涌现&#xff0c;人们的阅读体验日益得到丰富。比如&#xff0c;昨天世界读书日举行的“不…

Photoshop在启动时出现读取计算机特定首选项时出错,或者提示暂存盘已满导致打不开该如何处理

上午还能用&#xff0c;下午打开Photoshop时就报此错误 点击确定后&#xff0c;出现下图错误 首先&#xff0c;先试试删除设置文件。在长按shiftctrlalt的情况下用鼠标右键点击Photoshop图标&#xff0c;点击打开&#xff08;此间别松手&#xff09;&#xff0c;就会出现下图&a…

“智慧赋能 强链塑链”|工程物资供应链管理中的数字化应用

工程项目中的供应链管理至关重要 工程建设行业是国民经济的重要支柱之一&#xff0c;虽然在总产值上持续保持增长态势&#xff0c;但近年来行业的利润总额增速已连续多年呈现下降趋势。究其原因&#xff0c;可以大体从两个方面来看&#xff1a;一是行业盈利能力出现下降&#x…

Xshell CentOs Linux命令2

上一次我们说了几个命令&#xff0c;文件的创建删除等&#xff0c;还有就是文件查看&#xff0c;今天我们继续看几个命令。 echo echo命令 我们看到我们在echo 后面跟一个字符串&#xff0c;不同会帮我们打印在屏幕上&#xff0c;这里我们需要补充一些东西&#xff0c;在Linu…

多线程常见的锁策略

目录 1.1 乐观锁 和 悲观锁 1.2 轻量级锁 和 重量级锁 1.3 自旋锁 和 挂起等待锁 1.4 互斥锁 和 读写锁 1.5 可重入锁 和 不可重入锁 1.6 公平锁 和 非公平锁 1.7 synchronized 锁的属性 一、锁策略 说到锁&#xff0c;Java 里面常用的锁有 synchronized &#xff0c;锁…

安全防御 --- 态势感知、VPN

一、态势感知 1、概念 态势感知&#xff08;SA --- Situational Awareness&#xff09;是对一定时间和空间内的环境元素进行感知&#xff0c;并对这个元素的含义进行理解&#xff0c;最终预测这些元素在未来的发展状态。 作用&#xff1a; 态势感知能够检测出超过20大类的云上…

使用nvm(node.js version management)安装管理nodejs

鉴于目前网络上关于NVM安装NodeJS操作步骤的文章&#xff0c;大家都在互相借鉴&#xff0c;很少看到原创文章&#xff0c;很多操作步骤已经冗余和过时。因此&#xff0c;本人根据实际的前端项目开发经验&#xff0c;在此重新梳理了一遍目前最新的NVMNodeJS的安装步骤&#xff0…

微信小程序原生开发功能合集十二:编辑界面的实现

本章实现编辑界面的实现处理,包括各编辑组件的使用及添加数据保存数据流程的实现处理。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如下:    1. CSDN课程: https://edu.csdn.net/course/…

BOSHIDA 模块电源高低温试验箱测试原理

BOSHIDA 模块电源高低温试验箱测试原理 电源模块是可以直接贴装在印刷电路板上的电源供应器&#xff0c;其特点是可为专用集成电路&#xff08;ASIC&#xff09;、数字信号处理器 &#xff08;DSP&#xff09;、微处理器、存储器、现场可编程门阵列 &#xff08;FPGA&#xf…

OpenShift:关于OpenShift(OKD)通过命令行的方式部署镜像以及S2I流程Demo

写在前面 因为参加考试&#xff0c;会陆续分享一些 OpenShift 的笔记博文内容为安装完 OpenShift, 利用 OpenShift 引擎部署一个镜像应用和一个 S2I 流程部署应用 Demo学习环境为 openshift v3 的版本&#xff0c;有些旧这里如果专门学习 openshift &#xff0c;建议学习 v4 版…

【Idea】人工智能编程他来了,Idea集成一款和ChatGPT一样智能的编码辅助神器

文章目录 简介官方介绍功能介绍 注册使用使用方法功能说明 结尾 简介 Bito是一款建立在OpenAI和ChatGPT之上的开发辅助神器&#xff01;他可以帮我们生成代码、语法提示、生成测试用例、解释代码含义、生成注释、优化代码、检测代码安全性以及学习理论知识等&#xff01;我们可…

这可能是最全面的MySQL面试八股文了

什么是MySQL MySQL是一个关系型数据库&#xff0c;它采用表的形式来存储数据。你可以理解成是Excel表格&#xff0c;既然是表的形式存储数据&#xff0c;就有表结构&#xff08;行和列&#xff09;。行代表每一行数据&#xff0c;列代表该行中的每个值。列上的值是有数据类型的…