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

【Vue3 入门到实战】6. watchEffect

目录

 1. watch 和 watchEffect对比

2. watch演示

 3. watchEffect 演示


1. watch 和 watchEffect对比

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

(2) watch: 要明确指出监视的数据。

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

2. watch演示

代码如下

<template>
  <div class="person">
    <div class="person">
      <h1>需求:水温达到50℃,或水位达到20cm,则联系服务器</h1>
      <h2 id="demo">水温:{
  
  { temp }}</h2>
      <h2>水位:{
  
  { height }}</h2>
      <button @click="changePrice">水温+1</button>
      <button @click="changeSum">水位+10</button>
    </div>
  </div>
</template>

<script lang="ts" setup name="Person">
  import {ref,watch,watchEffect} from 'vue'
    // 数据
    let temp = ref(0)
    let height = ref(0)
  
    // 方法
    function changePrice(){
      temp.value += 10
    }
    function changeSum(){
      height.value += 1
    }
    watch([temp,height],(value)=>{
      // 先获取到新的值
      const [newTemp,newHeight] = value
      // 再根据条件达到时立即联系服务器
      if(newTemp >= 50 || newHeight >= 20){
        console.log('联系服务器')
      }
    })
</script>

可以看到当满足条件时,控制台就会打印响应内容。

 3. watchEffect 演示

代码如下

<template>
  <div class="person">
    <div class="person">
      <h1>需求:水温达到50℃,或水位达到20cm,则联系服务器</h1>
      <h2 id="demo">水温:{
  
  { temp }}</h2>
      <h2>水位:{
  
  { height }}</h2>
      <button @click="changePrice">水温+1</button>
      <button @click="changeSum">水位+10</button>
    </div>
  </div>
</template>

<script lang="ts" setup name="Person">
  import {ref,watch,watchEffect} from 'vue'
    // 数据
    let temp = ref(0)
    let height = ref(0)
  
    // 方法
    function changePrice(){
      temp.value += 10
    }
    function changeSum(){
      height.value += 1
    }

    watchEffect(()=>{
      if(temp.value >= 50 || height.value >= 20){
        console.log('联系服务器')
      }
    })
</script>

可以看到 watchEffect 无需明确指出要监视的数据,用到哪些属性,就会监视哪些属性。

更多相关内容异步 ↓ ↓ ↓

Vue3入门到实战_借来一夜星光的博客-CSDN博客


http://www.kler.cn/a/534652.html

相关文章:

  • DeepSeek大模型介绍、本地化部署与使用!【AI大模型】
  • 从BIO到NIO:Java IO的进化之路
  • 深入解析:Python 爬虫高级技巧与实战应用
  • DeepSeek 的含金量还在上升
  • AIGC(生成式AI)试用 20 -- deepseek 初识
  • 院校联合以项目驱动联合培养医工计算机AI人才路径探析
  • 【Golang学习之旅】Go 语言错误处理(error 接口、panic、recover)
  • Kubernetes完整详细学习笔记
  • 点(线)集最小包围外轮廓效果赏析
  • 第二个Qt开发实例:在Qt中利用GPIO子系统和sysfs伪文件系统实现按钮(Push Button)点击控制GPIO口(效果为LED2灯的灭和亮)
  • NFT Insider #167:Champions Tactics 角色加入 The Sandbox;AI 助力 Ronin 游戏生态
  • 2025 年前端开发趋势展望,开启新征程
  • PHP-运算符
  • mac下生成.icns图标
  • ubuntu20.04+RTX4060Ti大模型环境安装
  • Rust 核心语法总结
  • PTRACE_TRACEME 与反调试
  • MongoDB管道操作符(二)
  • PHP-回溯
  • HTML中的图片标签详解及路径使用【学术投稿-第五届环境资源与能源工程国际学术会议(ICEREE 2025)】
  • 使用多模态大语言模型进行深度学习的图像、文本和语音数据增强
  • Linux提权--John碰撞密码提权
  • K8S Deployment 实现 金丝雀(灰度) 发布
  • 用pytorch实现一个简单的图片预测类别
  • 原生redis实现分布式锁
  • web 第二次作业