解决Vue2移动端(H5)项目,手机打开项目侧滑或者按物理返回键,始终是走this.$router.go(-1)

一、原因前言

最近开发Vue2移动端(H5)项目,用手机打开项目侧滑或者按物理返回键,始终是走this.$router.go(-1),即相当于点击了浏览器的返回键的项目。目前想要的效果是:只要回到初始页面,点击返回或者侧滑都应该回到工作台,不应该在一步一步的返回到之前进过的页面。

二、解决办法

需要监听HTML5``window.historypushState事件来解决

html 复制代码
<template>
  <div class="end_judging_scrap_steel">
    <t-header title="废钢终判" :back="goBack">
      <template #right>
        <div @click="goToHistory" class="history">历史记录</div>
      </template>
    </t-header>
  </div>
</template>
<script>
export default {
  name: 'endJudgingScrapSteel',
  data() {
    return {
     
    }
  },
  beforeDestroy() {
    window.removeEventListener('popstate', this.goBack, false)
  },
  mounted() {
    if (window.history && window.history.pushState) {
      // 向历史记录中插入了当前页
      history.pushState(null, null, location.href)
      window.addEventListener('popstate', this.goBack, false)
    }
  },
  methods: {
    goBack() {
      this.$router.push({ path: '/' });
    }
  },
};
</script>
相关推荐
从文处安2 小时前
「九九八十一难」组合式函数到底有什么用?
前端·vue.js
用户11489669441053 小时前
VUE3响应式原理——从零解析
vue.js
用户83040713057013 小时前
SPA 首屏加载速度慢怎么解决?
vue.js·webpack
一枚前端小姐姐3 小时前
低代码平台表单设计系统技术分析(实战三)
前端·vue.js·低代码
SuperEugene4 小时前
从 Vue2 到 Vue3:语法差异与迁移时最容易懵的点
前端·vue.js·面试
Leon5 小时前
新手引导 intro.js 的使用
前端·javascript·vue.js
Forever7_5 小时前
仅用一个技巧,让 JavaScript 性能提速 500%!
前端·vue.js
青屿ovo7 小时前
Vue前端页面版本检测解决方案
前端·vue.js
apollo_qwe9 小时前
深入解析Vue的mixins与hooks:复用逻辑的两种核心方式
vue.js
_AaronWong10 小时前
Vue3+Element Plus 通用表格组件封装与使用实践
前端·javascript·vue.js