vue method和computed区别

先来看两段代码
第一段,使用methods方法来计算返回值


avatar

第二段代码,使用计算属性computed返回值

image.png

二者使用上的区别是使用methods需要调用now()和后者直接使用now
效果上 使用methods每秒页面的时间会进行更新,而后者不会,一直保持初始值,刷新页面后时间才会改变
那么computed与methods究竟有什么区别呢?

computed适用情景

我们先来看看computed的使用情景

对绑定数据进行处理,如果使用在html中使用表达式返回结果的话,当计算过程较为复杂时不能满足需求,基于使用computed,当绑定数据更新时,会调用computed。

计算属性还可以依赖多个Vue的数据,其中有一个数据发生变化,计算属性便会重新执行。

计算属性是依赖缓存的。当计算属性所依赖的数据发生变化时,它才会重新取值。

Date.now()不是响应式依赖,所以不会更新

而对于methods来说,它不依赖缓存,只要重新渲染,他就会被调用,因此函数也会被执行。

因此,使用计算属性还是methods取决于你是否需要缓存,当遍历大数组和大量计算时,应该使用计算属性。不需要缓存时使用methods

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。