全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-20 5 分钟 ✍️ juanwangdev

计算属性的缓存特性

计算属性的核心优势是缓存机制。

缓存示例

JavaScript
computed: {
  expensiveCalc() {
    console.log('执行计算')
    return this.items.reduce((sum, item) => sum + item.price, 0)
  }
}

多次访问 this.expensiveCalc 只会打印一次日志。

缓存 vs 无缓存

JavaScript
// 方法:每次调用都执行
methods: {
  total() {
    return this.items.reduce((sum, i) => sum + i.price, 0)
  }
}

// 计算属性:有缓存
computed: {
  total() {
    return this.items.reduce((sum, i) => sum + i.price, 0)
  }
}

模板中多次使用 {{ total }},方法会执行多次,计算属性仅计算一次。

不缓存的场景

如果不需要缓存,用方法:

JavaScript
// 每次都要获取当前时间
methods: {
  now() {
    return Date.now()
  }
}

计算属性的缓存基于 Vue 的响应式依赖追踪。

何时使用方法

情况选择
依赖响应式数据,需要缓存计算属性
需要参数方法
不需要缓存方法

要点总结

  • 计算属性自动缓存,依赖不变则返回缓存值
  • 适合开销较大的计算操作
  • 不支持传参,依赖隐式追踪
  • 不需要缓存或需要参数时用方法
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 计算属性的基本用法
下一篇 → 计算属性的setter
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码