先来看两段代码
第一段,使用methods方法来计算返回值
第二段代码,使用计算属性computed返回值
二者使用上的区别是使用methods需要调用now()和后者直接使用now
效果上 使用methods每秒页面的时间会进行更新,而后者不会,一直保持初始值,刷新页面后时间才会改变
那么computed与methods究竟有什么区别呢?
computed适用情景
我们先来看看computed的使用情景
对绑定数据进行处理,如果使用在html中使用表达式返回结果的话,当计算过程较为复杂时不能满足需求,基于使用computed,当绑定数据更新时,会调用computed。
计算属性还可以依赖多个Vue的数据,其中有一个数据发生变化,计算属性便会重新执行。
计算属性是依赖缓存的。当计算属性所依赖的数据发生变化时,它才会重新取值。
Date.now()不是响应式依赖,所以不会更新
而对于methods来说,它不依赖缓存,只要重新渲染,他就会被调用,因此函数也会被执行。
因此,使用计算属性还是methods取决于你是否需要缓存,当遍历大数组和大量计算时,应该使用计算属性。不需要缓存时使用methods