vue如何清除浏览器历史栈


Posted in Vue.js onMay 25, 2022

如何清除浏览器历史栈

问题

需要跳转好几个页面进行表单提交,提交完之后,跳转回首页,返回上一页,发现还可以返回上一级页面路由

//可以拿到历史记录栈,清空栈
let routeHistory=history.length-1;
this.$router.go(-routeHistory);

vue返回首页后如何清空路由

需求一:从首页点击路由到A页面

  • A页面点击路由到B页面
  • B页面点击路由到C页面
  • C页面点击路由链接到D页面
  • D页面有个返回首页按钮

那么问题来了

点击返回首页后,再点击手机的返回键 会打开D页面 再按手机返回键 会打开C页面,依次类推,

如何才能实现点击返回首页后,清空路由呢

mounted () {
    if (window.history && window.history.pushState) {
        // 向历史记录中插入了当前页
        history.pushState(null, null, document.URL);
        window.addEventListener('popstate', this.goBack, false);
    }
},
destroyed () {
    window.removeEventListener('popstate', this.goBack, false);
},
methods: {
    goBack () {
        // console.log("点击了浏览器的返回按钮");
        sessionStorage.clear();
        window.history.back();
    },
} 

禁止有返回记录

mounted () {
    if (window.history && window.history.pushState) {
        // 向历史记录中插入了当前页
        history.pushState(null, null, document.URL);
        window.addEventListener('popstate', this.goBack, false);
    }
},
destroyed () {
    window.removeEventListener('popstate', this.goBack, false);
},
methods: {
    goBack () {
        // console.log("点击了浏览器的返回按钮");
        history.pushState(null, null, document.URL);
    },
} 

需求二:把浏览器的记录返回指定的页面

mounted 中:
 if (window.history && window.history.pushState) {
      history.pushState(null, null, document.URL);
      window.addEventListener("popstate", _this.onClickLeft, false);  //_this.onClickLeft是返回的点击事件
    }
 methods: {
    onClickLeft() {
    //   this.$route.query.radio支付页面到指定页面传的参数 来判断他的路由
      if (this.$route.query.radio == 1 || this.$route.query.radio == 2) {
        this.$router.push({ //返回指定页面
        });
      } else {
        this.$router.go(-1);  // 正常返回
      }
    },
// 将事件清除掉
 destroyed() {
    window.removeEventListener("popstate", this.onClickLeft, false);
  }
Vue.js 相关文章推荐
vue 数据操作相关总结
Dec 17 Vue.js
vue中activated的用法
Jan 03 Vue.js
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
vue 实现上传组件
May 31 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
Vue监视数据的原理详解
Feb 24 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue3不同环境下实现配置代理
May 25 #Vue.js
vue使用element-ui按需引入
May 20 #Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 #Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 #Vue.js
Vue组件化(ref,props, mixin,.插件)详解
vue postcss-px2rem 自适应布局
May 15 #Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
You might like
php中文验证码实现示例分享
2014/01/12 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHP云打印类完整示例
2016/10/15 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python最基本的输入输出详解
2015/04/25 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
业务员简历自我评价
2014/03/06 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
演讲开场白台词大全
2015/05/29 职场文书
Python多线程 Queue 模块常见用法
2021/07/04 Python
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技