vue watch和computed对比实现姓名案例

本文分析了Vue中计算属性(computed)和侦听属性(watch)在处理异步任务上的差异。计算属性在实现简单逻辑时较为便捷,但无法直接处理异步操作。相比之下,watch可以轻松地进行异步任务,如设置延迟改变或启动定时器。当计算属性试图进行异步任务时,由于其同步性质,可能导致结果无法正确显示。文章通过示例说明了使用watch开启异步任务的正确方式,并强调了在定时器中使用箭头函数以保持正确的上下文。总结来说,计算属性不适合异步任务,而watch则能胜任。

要点:

 

 

watch:

 不难看出,不用computed只用watch时,需要自己定义一个fullname

对比:

computed:

只需要写一个fullname就行实现起来比较简单

watch:要多定义一个fullname并且要监视两个属性比较

麻烦

 虽然这边计算属性比较简单

但如果加一个功能比如要延迟一秒进行改变

就发现只有watch才能实现

表明watch非常容易的就能开启一个异步任务

如果用计算属性来写不会报错但是不显示

 

原因:很简单你把这个return交给了粉色的函数,所以fullname没有了返回值

所以计算属性的显示就是那个return返回值,但是很难让这个返回值等一会儿再显示

总结:

计算属性:不能进行异步任务的完成

侦听属性:可以轻松的完成异步任务

定时器是在firstname里面开启的

但是定时器里面的回调不是在vue中管理的

而且定时器里面的一定要写成箭头函数

如果这样写因为定时器里面的指定this为window 那么就找不到在vm上的fullname了

当写成箭头函数时,就会往外找找到了firstname函数而该函数在vue中

 

总结:

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值