Vue JS:计算值与观察者



我在开始时有3个布尔值,如果用户更改了这3个值中的一个(例如HTML复选框(,我想设置changed = true

data()
return {
boolean1:false, //may initally be true/false
boolean2:true,  //may initally be true/false
boolean3:false, //may initally be true/false
changed: false  //no changes to start with
};
},

如何在Vue中正确跟踪这3个值?我的冲动是使用观察者,但我现在读了好几次,计算属性是此类任务的更好选择。不幸的是,他们没有为这样一个简单的跟踪任务提供示例,那么计算属性会是什么样子呢?到目前为止,我有这个:

computed: {
comp_settings_change: function(){
// if booleans change, set to true, else stay at false.
return true
}
},

在这种情况下,观察者比计算道具更合适,因为标志只需要设置一次

您可以在布尔上使用vm.$watch(),它在初始更改后返回一个停止监视的函数,允许您创建一个一次性回调:

export default {
mounted() {
const unwatch = this.$watch(
() => [this.boolean1, this.boolean2, this.boolean3],
value => {
unwatch()
this.changed = true
}
)
},
}

演示

最新更新