vue3中的写法
onMounted(() => {
visibilitychange();
})
/** 浏览器窗口监听(当点击审核跳转其他系统后,数据被审批完了,再次从浏览器窗口切换,请求接口) */
const visibilitychange = () => {
document.addEventListener('visibilitychange', function() {
if (document.visibilityState === 'hidden') {
} else {
getInit() // 查询方法 - 方法中写调用接口代码
}
});
}
vue中的写法
created() {
this.initList()
document.addEventListener('visibilitychange', this.handleVisiable)
},
destroyed() {
document.removeEventListener('visibilitychange', this.handleVisiable)
},
methods: {
/** 切换窗口调用 */
handleVisiable(e) {
switch (e.target.visibilityState) {
case 'hidden':
console.log('离开了')
break
case 'visible':
this.getInit() // 查询方法 - 方法中写调用接口代码
break
}
},
}
注意: vue中使用,需要及时移除掉监听。比如说2个界面都写了监听方法,然后多次来回切换2个界面,多次切换不同的窗口,会导致调用的接口多次执行,影响性能
文章介绍了在Vue3和Vue中处理`visibilitychange`事件的不同方法,强调了在Vue中需要正确添加和移除事件监听以避免接口被多次执行,影响性能。Vue3中使用`onMounted`,而Vue则在`created`和`destroyed`生命周期钩子中管理事件监听。
9722

被折叠的 条评论
为什么被折叠?



