{returnperson.firstName+"-"">

当前位置:

首页 > 编程开发 > Vue3中的computed,watch,watchEffect如何使用

Vue3中的computed,watch,watchEffect如何使用

一、computed姓:名:全名:{{person.fullname}}全名:import{reactive,computed}from'vue'exportdefault{name:'HelloWorld',setup(){letperson=reactive({firstName:"张",lastName:"三"})//computed简写形式,没考虑修改/*person.fullname=computed(()=>{returnperson.firstName+"-"

一、computed



二、watch

  • 1、与 Vue2.x 中 watch 配置功能一致

  • 2、两个小"坑":

    • 监视 reactive 定义的响应式数据时: oldValue 无法正确获取、强制开启了深度监视(deep配置失效)

    • 监视 reactive 定义的响应式数据中某个属性时:deep 配置有效

vu2 的写法



Vue3 中这样写

1、情况一:监视ref所定义的一个响应式数据


Vue3中的computed,watch,watchEffect如何使用

watch 还可以传一个配置项,把 immediate 等配置传进去:

watch(sum, (newValue, oldValue) => {
      console.log("sum发生了变化", newValue, oldValue);
    },{immediate:true})

2、情况二:当有多个信息需要同时监视时


3、情况三:监视reactive所定义的一个响应式数据


4、情况四:监视reactive所定义的一个响应式数据某个属性

//情况四:监视reactive所定义的一个响应式数据某个属性
    watch(()=>person.name, (newValue, oldValue) => {
      console.log("person的name发生了变化", newValue, oldValue);
    })

Vue3中的computed,watch,watchEffect如何使用

5、情况五:监视 reactive 所定义的一个响应式数据某些属性

//情况五:监视reactive所定义的一个响应式数据某个属性
    watch([()=>person.name,()=>person.age], (newValue, oldValue) => {
      console.log("person的name或age发生了变化", newValue, oldValue);
    })

Vue3中的computed,watch,watchEffect如何使用

 6、特殊情况,监视对象中的某个对象属性,要开始deep:true

watch(()=>person.job, (newValue, oldValue) => {
	console.log("person的job发生了变化", newValue, oldValue);
},{deep:true})//由于监视的是reactive对象中的某个属性,deep奏效

7、监视 ref 定义的对象响应数据,需要.value或deep:true

	let person = ref({
      name: "张三",
      age: 18,
      job:{
        j1:{
          salary:20
        }
      }
    })
    watch(person.value, (newValue, oldValue) => {
      console.log("person的value发生了变化", newValue, oldValue);
    })
    或
    watch(person, (newValue, oldValue) => {
      console.log("person的value发生了变化", newValue, oldValue);
    },{deep:true})

三、watchEffect

watch 的套路是:既要指明监视的属性,也要指明监视的回调

watchEffect 的套路是:不用指明监视哪个属性,监视的回调中用到哪个属性,那就监视哪个属性

watchEffect有点像computed

。但computed注重的计算出来的值(回调函数的返回值),所以必须要写返回值

。而watchEffect更注重的是过程(回调函数的函数体),所以不用写返回值

//watchEffect所指定的回调中用到的数据只要发生变化,则直接重新执行回调
watchEffect(()=>{
	const xl = sum.value
	const x2 = person.age
	console.log( "watchEffect配置的回调执行了")
})

例如还用上边的例子:

import {reactive,watchEffect} from 'vue'
export default {
  name: 'Demo',
  setup() {
    let person = reactive({
      name: "张三",
      age: 18,
      job:{
        j1:{
          salary:20
        }
      }
    })
    watchEffect(()=>{
      const x1 = person.name;
      console.log("watchEffect所指定的回调执行了"+x1);
    })
    return {
      person
    }
  }
}

最后,我们使用 watch 和 watchEffect 实现姓名的例子



import {defineComponent, reactive, ref,watch,watchEffect} from 'vue';
export default defineComponent({
  setup(){
    let person = reactive({
      firstName:"张",
      lastName:"三"
    });

    const fullName = ref('');

    watch(person,({firstName,lastName})=>{
      fullName.value = firstName+"-"+lastName
    },{immediate:true})

    //不用使用immediate,默认执行一次
    /*watchEffect(()=>{
      fullName.value = person.firstName+"-"+person.lastName
    })*/

    watchEffect(()=>{
      const name = fullName.value.split('-');
      person.firstName = name[0];
      person.lastName = name[1];
    })
    return{
      person,
      fullName
    }
  }
});

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
watchstore下载软件教程:设备兼容、安装流程与常见故障
watchstore下载软件教程:设备兼容、安装流程与常见故障

本文详解watchstore下载软件流程:先确认Apple Watch/Wear OS/国产品牌手表的系统兼容性与蓝牙配对,再经手机端应用商店查找并安装至指定设备。重点涵盖安装后手表端验证、权限设置及“设备不兼容”“等待安装”“找不到应用”等故障排查,确保软件在手表端正常运行。

苹果推出限量版 10 周年 Apple Watch ‘闭环’ 表带给员工
苹果推出限量版 10 周年 Apple Watch ‘闭环’ 表带给员工

苹果为完成2026年年度内部健身挑战赛的员工,限量发放纪念“CloseYourRings”十周年的AppleWatch表带及珐琅徽章。该表带仅限员工获取,不对外销售,流通极为稀少。

魅族 Watch M1 智能手表发布曲面屏设计 首发价仅299元
魅族 Watch M1 智能手表发布曲面屏设计 首发价仅299元

魅族WatchM1智能手表:2.01英寸AMOLED曲面屏,首发价299元。搭载专业芯片与高精度传感器,支持蓝牙通话、腕上音乐、100+运动模式及全天候健康监测。300mAh电池续航3-5天,IP68防水。

手表也能玩游戏!瑞起推出智能游戏手表My Play Watch
手表也能玩游戏!瑞起推出智能游戏手表My Play Watch

瑞起公司2026年6月12日公布智能游戏手表MyPlayWatch,10月29日上市,18日开启预约。该系列源自2024年众筹项目,主打离线游戏体验与复古设计,无联网功能。五款机型售价统一15400日元,内置对应游戏及基础健康追踪,采用TFT触控屏与磁吸充电。

苹果 watchOS 27 微调 Apple Watch 液态玻璃设计,暂未引入透明度滑块
苹果 watchOS 27 微调 Apple Watch 液态玻璃设计,暂未引入透明度滑块

在最新watchOS27开发者测试版中,苹果微调了AppleWatch界面的液态玻璃设计,未引入透明度滑块。变化细微,主要针对UI元素的光泽、高光和阴影进行优化,使整体质感显著提升,视觉效果更通透。正式版预计秋季发布。

CNET 测试苹果 AirPods Pro 3 耳机心率监测:平均误差 1.23% 仅次于 Apple Watch
CNET 测试苹果 AirPods Pro 3 耳机心率监测:平均误差 1.23% 仅次于 Apple Watch

CNET实验室最新实测结果显示,AirPodsPro3耳内心率监测平均误差仅为2.02BPM(1.23%),准确性仅次于AppleWatchSeries11的0.89BPM(0.63%),且优于佳明、三星等专业设备。此次测试以PolarH10胸带为基准,在标准户外跑道完成1.6公里跑步,充分验证了其运动心率监测的可靠性。

CNET 测试苹果 AirPods Pro 3 耳机心率监测:平均误差 1.23%,仅次于 Apple Watch
CNET 测试苹果 AirPods Pro 3 耳机心率监测:平均误差 1.23%,仅次于 Apple Watch

CNET网站实测显示,苹果AirPodsPro3的心率监测功能平均误差为二点零二次每分钟,误差率百分之一点二三,精度仅次于苹果手表系列十一,优于其他非苹果可穿戴设备。测试以PolarH10胸带为基准,在高温跑道环境下进行,历经三次测试才获得完整数据。

小米 Watch S4 系列智能手表新版本内测开启,微信上线语音转文字发送消息等功能
小米 Watch S4 系列智能手表新版本内测开启,微信上线语音转文字发送消息等功能

小米WatchS4系列新版本内测于6月23日启动,微信功能升级,新增语音转文字发送消息、会话标记等,消息隐私保护加强,体验优化。内测活动时间为6月24日至30日。

Apple Watch或于2027年迎来重大改款,新表带系统将打破十年兼容性传统
Apple Watch或于2027年迎来重大改款,新表带系统将打破十年兼容性传统

苹果手表计划于2027年进行重大设计革新,全新表带连接系统将释放内部空间以增大电池容量,但导致自初代起所有旧表带均无法兼容。此前传闻的改版推迟至此时落地,旨在奠定未来十年产品基础。

Apple Watch 设计明年“重大革新” 采用全新表带连接系统
Apple Watch 设计明年“重大革新” 采用全新表带连接系统

据爆料,明年新款AppleWatch将采用全新表带连接系统,为更大电池腾出空间,现有表带可能不兼容。此前十周年“重大革新”传闻虽遭推迟,但并未取消。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。