Skip to main content

vue 中的 watch 和 computed

computed#

computed:{  msg(){    console.log(this.msg + "123")  }}

watch#

// 监听watch:{  msg:function(){    console.log(oldval,newold)  }}// 以下是深度监听watch: {  "msg.name": function (oldval, newval) {    console.log(oldval,newval )  },},// 或者watch: {  msg: {    handler: function ( oldval,newval) {      console.log(oldval.name,newval.name )    },    deep: true  }},
  • 区别
    • computed
      • 有缓存 ,
      • 有两个函数 set(){} get(){}
      • 同步代码
    • watch
      • 没有缓存,新旧值替换
      • 可以执行异步代码
      • 监听对象需要deep 且拿不到 oldval

$nextTick#

原理