【发布时间】:2017-10-19 18:29:18
【问题描述】:
假设我有两个数据属性:
data() {
return {
a: false,
b: false,
}
}
当a和b同时变成true时,我想执行一个相关的任务。
如何在 Vue 中使用 watch 方法来实现这一点?
【问题讨论】:
标签: javascript vue.js watch
假设我有两个数据属性:
data() {
return {
a: false,
b: false,
}
}
当a和b同时变成true时,我想执行一个相关的任务。
如何在 Vue 中使用 watch 方法来实现这一点?
【问题讨论】:
标签: javascript vue.js watch
观察一个计算值。
computed:{
combined(){
return this.a && this.b
}
}
watch:{
combined(value){
if (value)
//do something
}
}
上面有一种使用$watch的简写形式。
vm.$watch( function () { return this.a + this.b }, function (newVal, oldVal) { // do something } )
【讨论】:
combined(){ return [this.a, this.b]; } 应该适用于几乎任何基本类型值(可能不适用于对象 - JSON.stringify([a, b]) 在这种情况下应该适用)
这与@Bert 建议的解决方案几乎相同。但是您可以执行以下操作:
data() {
return {
combined: {
a: false,
b: false,
}
}
},
然后:
watch: {
combined:{
deep:true,
handler
}
}
【讨论】: