Vue2中,computed和watch是两个常用的数据监听工具,它们在实际应用中有着明显的区别。首先,就相同点而言,它们都具备监听数据的功能。然而,从概念上来看,computed是一种计算属性,其值依赖于其他属性值,并且具有缓存机制。当依赖的属性值发生变化时,computed的值才会重新计算。默认情况下,computed是只读的,相当于一个getter函数,但也可以通过设置getter和setter函数来实现读和写的操作。而watch更多的是用于观察数据的变化,每当监听的数据变化时,都会执行预定义的回调函数。watch只能设置getter,并且默认只监听一层数据变化,如果需要深度监听,则需要将deep属性设置为true。在作用上,computed主要用于在模板中显示数据,降低模板代码复杂度,而watch更像是一种事件,用于在数据变化时执行相应的操作。需要注意的是,computed只能在模板上使用,而watch不能在模板上使用。最后,就异步执行而言,computed不能有异步操作,只能同步执行。深入理解computed和watch的区别,对于掌握Vue2的面试题目是非常重要的。