https://blog.csdn.net/zhouzy539/article/details/96340814

都是以函数为基础

一、作用机制上

1、watch和computer都是以Vue的依赖追踪机制为基础,它们试图处理这件事情,当一个数据发生变化的时候,所有依赖这个数据的相关数据自动发生变化,也就是自动调用相关的函数去实现数据的变动
2、methods:methods里面定义函数,它需要手动调用才能执行,而不像watch 和computed那样,‘自动执行’预先定义的函数

从性质上

1、methods里面定义的是函数,很显然需要像‘func()’这样调用它
2、computed是计算属性,事实上和data对象里的数据属性是同一类
3、watch:类似于监听机制+事件机制

watch和computed不同的地方

watch 和computed 各自处理的数据关系的场景不同

  • watch 擅长处理的场景:一个数据影响多个数据
  • computed 擅长处理的场景:一个数据受多个数据影响
  • 相比于watch /computed ,methods不处理数据逻辑关系,只提供可调用的函数

总结三者

  • methods:正如他的名字一样,它们是挂载在对象上的函数,通常是Vue实例本身或Vue组件
  • computed:属性最初看起来像一个方法,但事实却又不是方法。在Vue中,我们使用data来跟踪对特定属性的更改,得到一定的反应。计算属性允许我们定义一个与数据使用相同方式的属性,但也可以有一些基于其依赖关系的自定义逻辑。你可以考虑计算属性的另一个视图到你的数据。
  • watchers:这些可以让你了解反应系统(Reactivity System)。我们提供了一些钩子来观察Vue存储的任何属性。如果我们想在每次发生变化时添加一些功能,或者响应某个特定的变化,我们可以观察一个属性并应用一些逻辑。这意味着观察者的名字必须与我们所观察到的相符。