部分安卓机vue跳转到外部链接跳转在从外部链接跳转回来vue生命周期无法执行

本页面路由"/login"
beforeCreate: function() {
    alert("1")
},
created: function() {
   alert("2")
},
beforeMount: function() {
    alert("3")
},
mounted: function() {
    alert("4")
},
 methods: {
    login() {
       window.location.href=外部url
    }

}
正常进入"/login"路由,生命周期函数能正常执行能正常执行alert
点击登录按钮跳转到外部url,从外部url获取一些信息,再从外部url跳转回到"/login"路由,页面能正常打开,但是生命周期函数全部实现失效,alert全部不执行,这是什么原因

阅读 4.4k
3 个回答

我也发现了这个问题,我的解决方案如下:
在 router.beforeEach中加入如下代码,来解决外部链接跳转回来vue的所有钩子函数无响应的问题。

      let user = navigator.userAgent;
      let isAndroid = user.indexOf('Android') > -1 || user.indexOf('Adr') > -1; //android终端
      if (isAndroid) {
        let reloadTimes = sessionStorage.reloadTimes || 0;
        reloadTimes++;
        sessionStorage.setItem('reloadTimes', reloadTimes);
        if (reloadTimes == 2) {
          router.go(0);
          return false;
        }
      }

渲染的页面没有失效,不会再执行生命周期函数

可以使用pageshow

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