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

computer与watch坚挺的区别与使用

一、在 Vue 中,watch 和 computed 是两种不同的机制,用于处理数据变化计算属性watch详解vue监听watch与computed、this.$set设置响应式数据。

1、watch
用途: 监听数据的变化,并在数据变化时执行相应的回调函数
适用场景: 当你需要在数据变化时执行异步操作或开销较大的操作时

示例:

 watch: {
    myData: {
      handler(newVal, oldVal) {
        console.log('myData changed from', oldVal, 'to', newVal);
        // 执行异步操作或其他开销较大的操作
      },
      deep: true, // 深度监听
      immediate: true // 立即执行
    }
  }

2、computed
用途: 计算属性,基于依赖的数据动态计算值
适用场景: 当你需要根据其他数据计算得出一个值,并且这个值需要在模板中多次使用时
示例:

 computed: {
    fullName() {
      return `${this.firstName} ${this.lastName}`;
    }
  }

两者区别
1、缓存: computed 属性会缓存结果,只有在依赖的数据变化时才会重新计算。而 watch 不会缓存结果,每次数据变化都会执行回调函数。
2、同步 vs 异步: computed 适合同步计算,而 watch 适合异步操作或开销较大的操作。
3、使用方式: computed 通常用于模板中,而 watch 通常用于方法中。

二、结合使用
你可以在同一个组件中同时使用 watch 和 computed,以充分利用它们各自的优势。例如:

export default {
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    };
  },
  computed: {
    fullName() {
      return `${this.firstName} ${this.lastName}`;
    }
  },
  watch: {
    fullName(newVal, oldVal) {
      console.log('fullName changed from', oldVal, 'to', newVal);
      // 执行异步操作或其他开销较大的操作
    }
  }
};


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

相关文章:

  • dbeaver创建create临时表之后查询不到问题排查
  • 12. C语言 数组与指针(深入理解)
  • netplan apply报错No module named ‘netifaces‘
  • WebSocket 测试入门篇
  • EtherCAT转Modbus网关与TwinCAT3的连接及配置详述
  • git的rebase和merge的区别?
  • Java 工厂模式、工厂方法模式、抽象工厂模式
  • IIS部署.NetCore/.Net8/.Net9项目(从装环境到配置Swagger)
  • 算法面试1
  • HTML5 渐变动画(Gradient Animation)
  • 给定差值的组合
  • day03-前端Web-Vue3.0基础
  • 面向对象分析与设计Python版 面向对象分析方法
  • 机器学习:一元线性回归
  • Python基于jieba和wordcloud绘制词云图
  • gateway在eureka注册报java.lang.IndexOutOfBoundsException
  • Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求
  • 基于Spring Boot的宠物健康顾问系统的设计与实现(LW+源码+讲解)
  • 国产编辑器EverEdit - 扩展脚本:关闭所有未修改文档
  • Docker Desktop的使用方法
  • 什么是Transformer模型中的KV缓存:上下文新增那之前计算的KV还可用,在原有基础上对新增的进行计算就行
  • opencv 学习(3)
  • js代理模式
  • 用c实现C++类(八股)
  • 【网络云SRE运维开发】2025第2周-每日【2025/01/09】小测-【第9章 VRRP原理及基本配置考试】理论和实操
  • UniAPP和Vue3生命周期hook