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 21 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
vue-resource 拦截器interceptors使用详解
Jan 18 Vue.js
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
Vue通过懒加载提升页面响应速度
May 10 Vue.js
Vue+Element UI实现概要小弹窗的全过程
May 30 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 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
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
用js实现in_array的方法
2013/11/05 Javascript
js实现表格字段排序
2014/02/19 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python学习小技巧总结
2018/06/10 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
Python sublime安装及配置过程详解
2020/06/29 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
教师自荐信
2013/12/10 职场文书
党员个人思想汇报
2013/12/28 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
教师节宣传方案
2014/05/23 职场文书
单位委托书怎么写
2014/08/02 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
python基础之停用词过滤详解
2021/04/21 Python