在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('卸载事件'); })
复制