watch和computed的区别

computed:

有缓存机制;不能接受参数;可以依赖其他computed,甚至是其他组件中的data;不能与data中的属性重复

watch:

可接受两个参数;监听时可触发一个回调,并做一些事情;监听的属性必须存在;允许异步

watch配置:handler、deep(是否深度)、immeditate(是否立即执行)

比如监听路由变化

watch:{
  $route:{
    handler: function(val, oldVal){
      console.log(val);
    },
    // 深度观察监听
    deep: true
  }  
}    

总结:

当有一些数据需要随着另外一些数据变化时,建议使用computed

当有一个通用的响应数据变化的时候,要执行一些业务逻辑或异步操作的时候建议使用watch

posted @ 2020-03-05 16:14  朝思暮想的虫  阅读(1651)  评论(0编辑  收藏  举报