computed:
有缓存机制;不能接受参数;可以依赖其他computed,甚至是其他组件中的data;不能与data中的属性重复
watch:
可接受两个参数;监听时可触发一个回调,并做一些事情;监听的属性必须存在;允许异步
watch配置:handler、deep(是否深度)、immeditate(是否立即执行)
比如监听路由变化
watch:{ $route:{ handler: function(val, oldVal){ console.log(val); }, // 深度观察监听 deep: true } }
总结:
当有一些数据需要随着另外一些数据变化时,建议使用computed
当有一个通用的响应数据变化的时候,要执行一些业务逻辑或异步操作的时候建议使用watch