问题描述
- 需求背景:在vue项目的开发时,由于一些项目需求,会要求从当前vue页面A跳转到外链页面B的情况;当跳转到外链B后,点击系统返回功能键,就会返回到页面A。
- 问题产生:在实际开发中,在ios系统上出现了一个问题:当从外链页面B点击系统返回键到页面A时,路由钩子函数没有执行,同时created和mounted生命周期钩子中的部分代码也没有执行,比如说localStorage和sessionStorage的setItem()和getItem()方法。而android系统上则不会出现这种问题。
问题解决
- 在页面A的created和mounted生命周期钩子中监听pageshow事件,当监听到pageshow事件后执行需要执行的代码,实现代码如下:
window.addEventListener('pageshow', () => {
sessionStorage.setItem('isFlag', 'true')
})