计算属性computed和watch的区别

  • 计算属性是基于它们的响应式依赖进行缓存的
  • computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数 多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化

应用场景:一个数据受多个数据影响

  • 使用watch来响应数据的变化
  • 一般用于异步或者开销较大的操作
  • watch 中的属性 一定是data 中 已经存在的数据
  • 当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,只有data中的数据才能够监听到变化,此时就需要deep属性对对象进行深度监听

 应用场景:监听单个变量或一个数组

<div id="app">
        <input type="text" v-model="firstName">
        <input type="text" v-model="lastName">
        <p>全名:{{fullName}}</p>
    </div>
    <script>
      // 监听器能够用来监听data中数据的变化,并且执行相应的操作
      var vm = new Vue({
        el: '#app',
        data: {
          firstName: '李',
          lastName: '白',
          // 定义变量来接受新的全名
          fullName: ''
        },
        // 创建监听器在watch属性中
        watch: {
          // 要监听谁,就将该变量拿过来作为一个函数名字, 这个函数中带有newVal, 
          和 oldVal两个参数,参数名字随意
          firstName(newVal, oldVal) {
            console.log(newVal, oldVal);
            this.fullName = newVal + this.lastName
          },
          lastName(newVal, oldVal) {
            this.fullName = this.firstName + newVal
          }
        }

        // watch 和 computed对比
        // 1. computed性能比watch更好,我们能用computed实现就用computed去实现
        // 2. 涉及到异步数据的时候,就需要用watch
      })
    </script>



  watch: {
    cityName: {
      handler(newName, oldName) {      // ...    },
    deep: true,
    immediate: true
    }
  } 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值