computed是Vue中的一个组件选项。它用于定义计算属性,类似于组件的方法,具有以下特点:
所以computed更适合计算属性,methods更适合定义方法。
- 计算缓存:computed有缓存机制,多次访问时直接返回缓存结果,避免重复计算
- 基于响应式依赖:computed会监听它所依赖的数据变化,当依赖发生变化时才会重新计算
- 计算属性:computed更适合用来计算属性,定义复杂逻辑
computed的基本使用
定义computed很简单,在组件的computed选项中定义:
computed:{ all(){ return this.num / 2 } }//把数据除以2
在模板中可以直接使用fullName,会自动调用计算:
<view>{{all}}</view>
computed和methods的区别:
- computed有缓存,methods没有
- computed基于响应式依赖进行缓存,只在相关依赖变更时重新计算
- methods每次重新渲染都会执行
总结
computed是Vue非常实用的功能,让我们可以基于响应式依赖进行缓存并减少重复计算。正确使用computed可以简化代码、提高性能。