更新:2020 年 4 月
对于使用 Vue 3 的人,watch API 可以接受多个来源
import { watch, ref } from 'vue';
export default {
setup(() => {
const a = ref(1), b = ref('hello');
watch([a, b], ([newA, newB], [prevA, prevB]) => {
// do whatever you want
});
});
};
Vue 2 的原始答案
没有官方方法可以解决您的问题(请参阅此)。但是您可以使用计算属性作为技巧:
export default {
// ...
computed: {
propertyAAndPropertyB() {
return `${this.propertyA}|${this.propertyB}`;
},
},
watch: {
propertyAAndPropertyB(newVal, oldVal) {
const [oldPropertyA, oldProvertyB] = oldVal.split('|');
const [newPropertyA, newProvertyB] = newVal.split('|');
// doSomething
},
},
}
如果您只想做某事而不关心什么是新/旧值。忽略两行
const [oldPropertyA, oldProvertyB] = oldVal.split('|');
const [newPropertyA, newProvertyB] = newVal.split('|');