computed原理

在Vue中,computed是一种常用的属性配置,它能够随着依赖属性的变化而自动更新值并缓存更新后的值,为我们带来很大的便利。那么computed是如何实现这样的功能的呢?

computed的实现原理基于Vue的响应式原理。当某个响应式数据被访问时,会触发getter函数,将当前Watcher对象添加到该响应式数据的依赖列表中,当该响应式数据发生改变时,会触发setter函数,通知依赖列表中的所有Watcher更新。

在computed中,其属性值所依赖的数据对象会被设置为响应式数据,当这些响应式数据发生改变时,会通知存储computed的Dep对象,标记该computed为dirty。当下次访问该computed的属性值时,computed会检查依赖的响应式数据是否发生了变更,如果没有则直接返回已缓存的属性值;如果依赖的数据发生了变更,则重新计算属性值,并将计算后的结果缓存起来。此时,该computed会将dirty标记重置为false,等待下次依赖项发生变化时再次重新计算。

因此,computed具有缓存和惰性求值的特点,能够避免重复计算,提高了程序性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值