Vue.js 如果组件在Nativescript Vue中处于非活动状态,如何停止代码执行
我的应用程序应该每5秒发送一次关于设备的数据,但是如果我最小化应用程序并重新打开它,或者如果我只是返回页面并返回,代码甚至会在后台继续运行。当我再次打开应用程序时,发送数据的功能叠加在已经工作的功能上,数据离开的频率是原来的两倍,因此您可以无限期地创建一个函数 如何解决这个问题 我的方法:Vue.js 如果组件在Nativescript Vue中处于非活动状态,如何停止代码执行,vue.js,nativescript,nativescript-vue,Vue.js,Nativescript,Nativescript Vue,我的应用程序应该每5秒发送一次关于设备的数据,但是如果我最小化应用程序并重新打开它,或者如果我只是返回页面并返回,代码甚至会在后台继续运行。当我再次打开应用程序时,发送数据的功能叠加在已经工作的功能上,数据离开的频率是原来的两倍,因此您可以无限期地创建一个函数 如何解决这个问题 我的方法: sendDeviceInfo(){ console.log("1111"); axios.post('', {
sendDeviceInfo(){
console.log("1111");
axios.post('', {
device: DeviceInfo.systemManufacturer() + ' ' +DeviceInfo.deviceName(),
deviceId: DeviceInfo.deviceId(),
appId: DeviceInfo.appVersion(),
email: this.email,
battery: DeviceInfo.batteryLevel(),
batteryCharging: DeviceInfo.isBatteryCharging() === true ? 1 : 0
});
}
并安装:
this.sendDeviceInfo();
setInterval(this.sendDeviceInfo, 5000);
您需要清除组件销毁时的间隔
setInterval
返回一个可用于清除的引用
data: () => ({
...yourDataStuff,
sendDeviceInfoInterval: null
}),
mounted() {
this.sendDeviceInfoInterval = setInterval(this.sendDeviceInfo, 5000);
},
beforeDestroy() {
clearInterval(this.sendDeviceInfoInterval);
}
感谢这正是我想要的。