{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
        }
      }
    });
    
    
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Vue3
    相关文章 更多
    pinia数据持久化的步骤详解与插件配置教程
    pinia数据持久化的步骤详解与插件配置教程

    详解Pinia数据持久化的实现步骤,包括手动订阅状态、封装通用插件及处理序列化例外,帮助开发者构建稳定的前端状态存储方案。

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

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

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

    Windows
    Windows

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

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。