最新版vue3+TypeScript开发入门到实战教程之watch与watchEffect对比区别

1、概述

上节: 详解watch用法,watch功能是监视某些数据的变化,一旦发生变化,调用回调,传递新旧数值。watchEffect官方定义如下:
立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行。

简言之,watchEffect是一个函数,只需向 watchEffect 传递一个函数即可。在这个函数内部,你引用的任何响应式数据都会被自动监视其变化。

以下通过两个实例对比watch与watchEffect区别

2、watch事例

  • 创建Fish组件,引入ref、watch

  • 创建鱼类价格与重量

  • 调用watch

  • 当价格大于15且重量大于5,就能赚到钱了

运行效果如下图,watch通过数组的方式监视price与weight变化,由于我们不关注旧值的数据,参数只有newValue。当点击按钮超过对应值时,打印赚到钱了。

3、watchEffect事例

  • 创建Fish组件,引入ref、watchEffect

  • 创建鱼类价格与重量

  • 调用watchEffect

  • 当价格大于15且重量大于5,就能赚到钱了

运行效果如下图,watchEffect会自动监视price与weight变化,并在页面加载成功时,就调用一次watchEffect。后边当点击修改价格、修改重量按钮时,watchEffect都会被调用。

4、对比watch与watchEffect区别

  • 都能监听响应式数据的变化,不同的是监听数据变化的方式不同
  • watch:要明确指出监视的数据
  • watchEffect:不用明确指出监视的数据(函数中用到哪些属性,那就监视哪些属性)
相关推荐
parade岁月几秒前
告别 Deno 时代?运行时进入一年倒计时,Deno 团队并入 Cloudflare
前端
Lucky_Turtle4 分钟前
【HTML】前端页面禁止缩放
前端·html
恋猫de小郭9 分钟前
Genkit Dart 1.0 发布,Flutter 原生的 AI Agent 终于完整了
android·前端·flutter
专业程序开发源14 分钟前
django便利店外卖后台管理系统19650-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
思码梁田17 分钟前
CSS transform 转换详解:translate、rotate、scale、skew 与 3D 变换一次讲清
前端·css·transform·skew·scale·translate·rotate
第10086个小白22 分钟前
flutter桌面端打包方式(Inno Setup Compiler)版本
前端·flutter
派小心.35 分钟前
多端数据分析平台的漏斗可以跨端搭建吗?5 步搭出跨端转化漏斗
大数据·运维·服务器·前端·数据分析
IT_陈寒1 小时前
为什么我的React组件一直在意外重渲染?
前端·人工智能·后端
Su米苏1 小时前
基于 Token 预算的上下文压缩控制器(Context Compaction Controller)
前端·数据库·人工智能
骇客野人1 小时前
Java 开发组件大全覆盖后端主流技术栈(基础、Web、ORM、中间件、微服务、安全、工具、测试、运维、信创适配常用组件)
java·前端·中间件