三分钟学会computed计算属性和watch监听属性

4 篇文章 0 订阅
3 篇文章 0 订阅

OMO

计算属性computed

<template>
<div id="app">
 
    <div> {{ aaa }} </div>        <!-- 3 -->
 
</div>
</template>
 
 
       new Vue({
		  el: '#app',
		  data: {
			a:1,
			b:2,
		  },
		  computed: {
            // 注册一个函数aaa,计算下a+b等于多少
			aaa: function () {
			  return this.a + this.b
			}
		  },
		})

computed     计算属性是基于他们的响应式依赖进行缓存的,只在相关响应式依赖发生改变时它们才会重新求值。  // 官网原话,

简单来说,就是a 和 b,只有data中的 a和b发生了变化,他的响应式依赖发生了变化, aaa函数才会再次执行。如果数据a  b没有发生改变,多次访问aaa 会立即返回之前的计算结果,而不需要在执行一次函数。

aaa是计算属性,计算属性调用的时候可以不用带括号  {{ aaa }}

 监听属性watch

<template>
<div id="app">
 
    <div> {{ aa }} </div>      
 
</div>
</template>
 
 
       new Vue({
		  el: '#app',
		  data: {
        // 只要aa改变了,就会触发对应的函数
			aa:1,
			b:2,
		  },
		  watch: {
// 要监听的数据名 : 你的函数
              aa: function (oldData,newData) {
                 console.log('aa改变了,你可以在这里做你想做的事')
		      }
                //俩参数, oldData是改变前的数据,newData是改变后的数据
		  },
		})

watch 是监听器,一般用来监听数据的变化,并做一一些你想做的事情。

以你要监听的属性为键,后面注册一个函数,也可以直接写一个函数名。

// 带俩参数, oldData是改变前的数据,newData是改变后的数据

应用场景

computed 

当多个属性影响一个属性的时候,可以用computed,

假设你的双11购物车,有一个总价,里有三个商品,每个商品十块,一共30,其中一个涨了一块钱,总价被其中一个商品单价影响,变成了31,又一个商品也涨了一块,总价又变成了32,总价收到了多个商品的影响

 watch

当一个属性影响多个属性的时候,可以用watch

假如你逛淘宝有一张优惠卷,商品1是10元,商品2是100元,优惠卷是九折,此时商品1是9元,商品2为90元,当优惠卷变成五折,商品1变成5元,商品2变成50元,

这就是一个属性影响了多个属性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值