VUE如何监听当前页面的隐藏显示

新手上路,请多包涵

前端用的是vue框架现在有个这样的需求:
第一个页面点击一个按钮打开一个新的页面(是新页面),然后在新页面进行一些操作,完成操作后关闭该页面,这时回到了第一个页面,这是第一个页面要监听到回来了进行一些操作
如何实现监听?我在vue里监听页面的hidden事件没起作用,请问有知道的大佬么,TUT

阅读 24.6k
4 个回答
✓ 已被采纳新手上路,请多包涵

解决了!监听页面显示隐藏就可以

mounted() {  
  document.addEventListener('visibilitychange', _this.handleVisiable)  
},  
destroyed() {  
  document.removeEventListener('visibilitychange', _this.handleVisiable)  
},  
methods: {  
  handleVisiable(e) {  
    if (e.target.visibilityState === 'visible') {  
      // 要执行的方法
    }  
}

你说是的vue-router的事件?还是组件的,activated 被缓存的组件,created 未被缓存的组件?

用keep-alive包裹组件,然后监听 activated 方法

<div id="app">
    <keep-alive>
        <router-view/>
    </keep-alive>
</div>
...

activated() {
  console.log('被keep-alive 缓存的组件激活时调用')
},

用路由守卫即可。

在第一个页面里添加beforeRouteEnter钩子,它会注入tofromnext三个参数。

检查from.name即可知道是否是从第二个页面跳回来的


beforeRouteEnter(to, from, next) {
    if(from.name==='xxx') {
        // dosomething
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题