Vue watch和computed的区别

36 篇文章 8 订阅
watchcomputed
定义格式必须监听存在的属性(data、props、computed)不能和data定义的变量相同
异步支持异步操作不支持异步
开销适合一些开销较大的操作适合做一些简单依赖的计算

对于computed能做的 watch都可以做,至于选择哪个去做,都应该去看使用场景

一、使用场景

第一个输入框+第二个输入框 进行拼接

    <input type="text" v-model="num1" name="" id="">+
    <input type="text" v-model="num2" name="" id="">=
    {{num3}}
    {{res}}

监听

 watch:{
      res(){
      this.num3= this.num1+this.num2
      },
      num2(){
      this.num3= this.num1+this.num2
      }
    },

计算属性

    computed: {
      res() {
        return this.num1+this.num2
      }
    },

从代码量来看 显然更适合 用计算属性去做,而使用watch 就要检测两个值的变化 稍微繁琐了些

但是 watch 可以做一些异步的事情 并且可以设置改变多个值   这是计算属性做不到的

二、缓存

关于缓存问题 个人感觉 这两个并不能比,可以用computed和methods去比

方法

    {{res()}}
    {{res()}}

    methods: {
      res() {
        console.log('方法被执行了');
       return this.num1+this.num2
      }
    },

 如果视图上多个使用这个方法 每个调用都会执行

 计算属性

 而计算属性不同,只有当值发生改变的时候他才会执行,如果上次没有改变他会取从缓存拿值

    {{res}}
    {{res}}

    computed: {
      res() {
        console.log('计算属性执行了');
        return this.num1+this.num2
      }
    },

参考官网:computed和watch

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值