Vue.js 2:观察,但不关注初始数据获取



我是Vueniverse的新手(使用Vue.js 2(,正在与watch作斗争。在mounted上,我调用API并将单选按钮设置为从API获得的值,因此基本上我有两个值为10(真/假(的单选按钮。

我认为观察程序工作正常,因为它确实会在值更改时触发。然而,我不希望它在初始更改时触发——那是我第一次从后端设置值的时候。

我尝试过使用不同的生命周期挂钩,如beforeCreatedcreated等等,它总是会触发。

也许这很容易做到,但我不知道如何做到,也没有在互联网上找到信息(可能使用了错误的关键词(。

代码:

import axios from "axios";
export default {
name: 'Settings',
data: () => ({
/* set motionSensor to null initially */
motionSensor: null
}),
mounted() {
/* get the initial value from the backend, however this triggers the watcher */
axios
.get('http://localhost:8000/status.json')
.then(response => {
response.data['motionsensor'] ? this.motionSensor = "1" : this.motionSensor = "0";
})
},
watch: {
motionSensor: function(val) {
alert('Motion sensor value is now: ' + val)
}
}
}

尝试利用旧值,这是手表处理程序的第二个参数:

watch: {
motionSensor: function(val, oldVal) {
if (oldVal !== null) {
alert('Motion sensor value is now: ' + val)
}
}
}

最新更新