【VUE】监听页面返回或移动端物理返回按钮键

有一次在修改别人的代码时,发现页面一进来会加载两次,导致要返回到上一页面还要点两次才能返回,找了原因,发现原来是axios发送了两次请求(一次为请求方法为option,一次为正常请求),具体解释请点查看,我一般用的是代理跨域,第一次遇到这种跨域处理,由于技术过渣不知道怎么改,只好想办法控制返回事件实现点击一次返回上一级(就是这么强硬 (~O~))

第二次更新,之前的使用onpopstate,没有在页面离开时候移除掉事件,导致其他页面也触发,所以重新需要加下移除事件

//unit.js
// 存储当前历史记录点,实现控制手机物理返回键的按钮事件
export const pushHistory = () => {
  let state = { title: '', url: '' }
  window.history.pushState(state, state.title, state.url)
}
//index.vue

注意

使用了页面缓存,是不会执行destroyed,之前有同事就出现这个问题卡住了,如果用了页面缓存的,可以使用路由离开监听替换destroyed

你可能感兴趣的:(【VUE】监听页面返回或移动端物理返回按钮键)