vue中计算属性缓存(computed ) vs 方法(methods)

                vue中计算属性缓存(computed ) vs  方法(methods)

1、为什么需要计算属性缓存(computed )?

答:如果我们有一个性能开销比较大的计算属性arrayOperation ,它需要遍历一个巨大的数组并做大量的计算。然后我们可能有其他的计算属性依赖于 arrayOperation  。如果没有缓存,我们将不可避免的多次执行arrayOperation 的 getter!如果你不希望有缓存,请用方法来替代。

2、计算属性缓存(computed )不好之处是?

答:我们可以将同一函数定义为一个方法而不是一个计算属性。两种方式的最终结果确实是完全相同的。然而,不同的是计算属性是基于它们的依赖进行缓存的。只在相关依赖发生改变时它们才会重新求值。这就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数。

这也同样意味着下面的计算属性将不再更新,因为 Date.now() 不是响应式依赖:

computed: {

      now: function () {

              return Date.now()

     }

}

3、计算属性缓存(computed )适用?

答:存在复杂逻辑、需要用到缓存时等等可以用到计算属性computed

4、虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

官网:https://cn.vuejs.org/v2/guide/computed.html

猜你喜欢

转载自blog.csdn.net/qq_31935419/article/details/82586300