个人对于vue2计算属性的理解

当某个变量的值需要用到其他变量计算才能得到的时候,这时才会用上计算属性(computed)。

简单写法

data(){return {a:10,b:5}}
computed:{
num(){return this.a+this.b}
}

num为15

完整写法

data(){return {a:10,b:5}}
computed:{
num:{
set(val){},
// 这个set,只有在num被赋值的时候才会触发
// val是num被赋予的新值
get(){return this.a+this.b}
// get只有在使用num的时候才会被触发
}
}

num为15

个人感觉计算属性的用法与在data里定义的普通变量的用法没什么不一样,只有定义的时候计算属性定义的方法不太一样。用起来都是this.xx,在标签上用也都是{{xx}}。

计算属性的缓存机制是:

计算属性对应的函数执行后,会把return 的结果缓存起来,

当依赖项不变时,多次调用都是从缓存里取值

当依赖项变化时,才会重新开始计算,并缓存新的值

这里的依赖项是指变量

<button @click='A++'>点击则让A+1</button>
data(){
return{A:6,B:5}}
computed:{
num:{
set(){},
get(){return this.A+this.B}
}
}

未点击按钮时num为11,当点击按钮后num会+1

在get里的所有变量只要发生变化,计算属性就会重新计算一次。不管是复杂数据类型还是简单数据类型都会重新计算。计算属性发生变化时,视图也会一起更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
watch和计算属性(computed)在Vue.js中是两个重要的属性,它们有以下区别: 1. 功能:watch用于监视一个值的变化并执行相应的回调函数,而计算属性是根据其他属性的值进行计算得到新的属性值。 2. 调用缓存:计算属性会在依赖的属性不变时使用缓存,不会重复计算;而watch会在每次监听的值发生变化时调用回调函数,不会使用缓存。 3. 是否需要返回值:计算属性必须有返回值,而watch可以没有返回值。 4. 使用场景:计算属性适用于一个属性受多个属性影响的情况,例如购物车商品结算;watch适用于一条数据影响多条数据的情况,例如搜索框。 5. 异步支持:计算属性不能包含异步操作,而watch可以。 6. 个人理解:watch在监听到变化时执行某个回调函数,用于做一些特定的操作;计算属性在监听到变化时重新计算值,用于生成新的属性值。 综上所述,watch和计算属性在功能、调用缓存、返回值、使用场景和异步支持等方面存在一些区别。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue.js计算属性computed与watch(5)](https://download.csdn.net/download/weixin_38633157/12986957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [watch(监视属性)和computed(计算属性)的区别](https://blog.csdn.net/qq_67983277/article/details/127739810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值