vue-computed、methods、watch区别


computed vs methods

相同点:
首先它们都可以在模板上调用(methods内方法想computed那样return)

不同点:

缓存:

computed有缓存,methods没有

computed计算属性是基于它们的响应式依赖进行缓存的

也就是说不管你在template模板上输出了几次,只有值没有改变,都只输出一次

调用方式:

computed调用没有括号,methods有()

总结:
“我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行”。

可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。

computed vs watch

1.输出的执行不同

computed值没有改变时也会输出

watch只有值改变时才会输出

  • 2.监听数量有差别(一对多,多对一)

computed是监听多个值,只要某一值发生改变就会重新输出

而watch是监听一个值

3.watch监听更灵活

watch可以监听旧值和新值,可以设置immediate:true 页面首次加载的时候做一次监听

https://blog.csdn.net/qq_38110274/article/details/121242203

  • 4.异步与否(return)

computed不能异步 因为computed依赖return来获取结果,如settimeout的回调是被全局函数所引用的,无法return给computed

watch可以 不需要return

  1. 缓存

computed有缓存

watch没有缓存的概念 因为它的输出和监听都依赖于其它对象如路由 data props 所以它就是一个监听 仅此而已


文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论
  目录