Javascript VueJS:查看两个属性

Javascript VueJS:查看两个属性,javascript,vue.js,watch,Javascript,Vue.js,Watch,假设我有两个数据属性: data() { return { a: false, b: false, } } 当a和b同时变为true时,我想执行相关任务 如何在Vue中使用watch方法实现此目的?查看计算值 computed:{ combined(){ return this.a && this.b } } watch:{ combined(value){ if (value)

假设我有两个数据属性:

data() {
  return {
    a: false, 
    b: false, 
  }
}
a
b
同时变为
true
时,我想执行相关任务


如何在Vue中使用watch方法实现此目的?

查看计算值

computed:{
    combined(){
        return this.a && this.b
    }
}
watch:{
    combined(value){
        if (value)
            //do something
    }
}
上面的用法有一种简写法


这与@Bert建议的解决方案几乎相同。但您可以只执行以下操作:

data() {
  return {
      combined: {
          a: false, 
          b: false, 
      }
  }
},
然后:


这仍然是唯一的方法还是vue有任何更新?@berkan我不知道。我已经有一段时间没有机会在Vue中工作了。结合计算属性和观察者的最聪明的解决方案。谢谢!:)以这种方式使用组合计算字段看起来是完全错误的。如果a=true和b=false,然后它们变为a=false和b=true或a=false和b=false,观察者将不会执行,因为组合值仍然是false。。。更不用说,这是非常特殊的布尔值。尽管这种方法本身非常有效,但您只需要找到生成组合值的正确方法。例如,
combined(){return[this.a,this.b];}
应该适用于几乎所有的基本类型值(可能不适用于对象-
JSON.stringify([a,b])
在这种情况下应该适用)
data() {
  return {
      combined: {
          a: false, 
          b: false, 
      }
  }
},
watch: {
    combined:{
        deep:true,
        handler
    }
}