在vue中,计算属性computed和methods方法可以实现同样的功能,那么在实现相同的功能时,它们之间有什么区别呢?
计算属性最基础的亮点是什么?
官方文档中介绍:对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性。
重点是:响应式和复杂逻辑
💡 而相较于methods方法,使用计算属性最大的亮点是:计算属性具有缓存能力。
计算属性的缓存能力是什么意思呢?
官方文档中介绍:计算属性只会在相关响应式依赖发生改变时重新求值。只要相关响应式依赖还没有发生改变,多次访问时,计算属性就会立即返回之前的计算结果,不必再次执行函数。
🎯 简单理解就是:计算属性会将数据缓存下来,多次访问一个数据,当数据没有发生变化时,计算属性就会立即返回缓存中的数据,不用再次执行函数去计算这个数据。
而,函数在你每次访问时,都会重新被调用执行。
🎯 对于计算属性,总结一句话就是:计算属性用来处理响应式的复杂逻辑的数据,并通过缓存,大大提高了数据返回和处理的效率。
最后讲一下,我们为什么需要缓存?
当我们需要处理一个性能开销较大的属性时,如一个list,我们就需要遍历一个巨大的数组并做大量的计算,当然还有可能有其他的计算属性也依赖与这个list。如果没有缓存,我们就会不可避免的会多次执行list,造成性能的浪费。