在vue3+ts项目中遇到了这么一个问题,在一个A页面中又新打开一个webview页面,新需求是在每次回到A页面就调用接口刷新数据,正常来说没次进入A页面都会执行他的生命周期,这种情况并没有,那么推理到 打开新的webView页面后 ,A页面并没有被销毁,,那么此时就在猜想想要监听到用户动作就想到了 浏览器的监听dom切换tab标签
//操作的事件
const dom = () => {
// 用户息屏、或者切到后台运行 (离开页面)
if (document.visibilityState === 'hidden') {
console.log('页面隐藏')
}
// 用户打开或回到页面
if (document.visibilityState === 'visible') {
//重新获取数据
getInfo()
console.log('页面可见')
}
}
onMounted(() => {
document.addEventListener('visibilitychange', dom)
})
// 解绑事件
onUnmounted(() => {
document.removeEventListener('visibilitychange', dom)
console.log('卸载事件');
})