外链回退到 Vue 应用页面不刷新:用 pageshow 事件兜底
最近项目中开发,有一个需求大致如下:
vue 应用中跳转到外部连接而后再回退到 vue 应用里面,beforeRouteEnter 没有被触发,created、mounted 里面也没有执行代码,那就证实有可能页面被缓存了,因此这些钩子没有触发。
由于是页面被缓存,即使用 DOM 页面的 pageshow 事件来监听,需要刷新的页面监听 pageshow:
created () {
window.addEventListener('pageshow', () => {
// 外链回退到 vue 应用要执行的代码
})
},
beforeDestroy() {
window.removeEventListener('pageshow', () => {
// 外链回退到 vue 应用要执行的代码
})
}