computed其实就是计算属性,计算出来的属性值在调用getter之后会被缓存。一旦属性值需要重新计算,该值就会在第一次被调用getter之后缓存,原来的缓存被清除。computed就适合计算开销较大但调用低频的场景,如根据用户提供的姓和名组成全名,根据提供的出生年月日计算年龄等。watch就是数据监听回调,一旦依赖的数据发生变化,就会调用回调函数,方法中传入oldVal和newVal。watch里的方法都是异步方法,适合用在数据发生变化时,需要执行异步操作的(性能开销大的)场景。如撤销操作。
总结:
- 如果一个数据依赖于其他数据,就用
computed - 如果数据发生变化时,需要执行异步的或性能开销较大(那就更需要异步)的操作,就用
watch