在vue中实现禁止回退上一步,路由不存历史记录


Posted in Javascript onJuly 22, 2020

在有些情况下,我们不想往路由里添加历史记录。(vue的项目,vue-router中不想存历史记录)

根据vue官网提供的,楼主总结了一下,主要有以下几种方案:

在vue中实现禁止回退上一步,路由不存历史记录

根据官网的解释 。声明式路由和编程式路由都是添加新的记录,同时vue还提供了replace来替换路由记录,从而实现路由不存历史记录的情况,以下是楼主总结的几种方法:

1、声明式路由

在vue中实现禁止回退上一步,路由不存历史记录

2、编程式

在vue中实现禁止回退上一步,路由不存历史记录

3、原生js实现

楼主晚上回去看了一下<js高程>,原生实现替换路由,不记录历史记录的方法

window.open("http://www.baidu.com.......");

会往路由历史中添加一条记录(还有第二个参数,大家可自几去查看,在dom第7章)

window.location.replace("http://www.baidu.com.......");

会替换之前的历史记录,不会添加历史记录

在vue中实现禁止回退上一步,路由不存历史记录

补充知识:vue 回退 不刷新 缓存问题 从A页跳到B页,缓存A页,当B再次返回A时,页面不刷新

我就废话不多说了,大家还是直接看代码吧~

//在index.js中
    {
    path: '/SearchContent',
    name: 'SearchContent',
    component: SearchContent,
    meta: {
     keepAlive: false,//此组件不需要被缓存
     isBack:false 
    }
   },
   {
    path: '/Shop',
    name: 'Shop',
    component: Shop,
    meta: {
     keepAlive: false, 
     isBack:false//判断上一个页面
    }
   },
 
//在searchContent中
beforeRouteEnter(to, from, next) {
     // 设置下一个路由的 meta
     if(from.name == 'Shop'){
       to.meta.isBack = true;
       to.meta.keepAlive = true;
     } // 让 A 缓存,即不刷新
    next();
  },
  components:{
    "app-brands":Brand
  },
//注意activated只能在keep-alive组件中调用
   activated() {
 if(!this.$route.meta.isBack){
  
  // 如果isBack是false,表明需要获取新数据,否则就不再请求,直接使用缓存的数据
  this.getData();
  this.getTree();
 }
 // 恢复成默认的false,避免isBack一直是true,导致下次无法获取数据
 this.$route.meta.isBack=false
 
},
//在进入页面时调用接口请求数据,当数据请求完成,第二次进入页面时,就会执行activated函数
 mounted(){
    this.getData()
    this.getTree()
  },

以上这篇在vue中实现禁止回退上一步,路由不存历史记录就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
javascript操作css属性
Dec 30 Javascript
js通过iframe加载外部网页的实现代码
Apr 05 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
Jun 25 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
Aug 17 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
vue iView 上传组件之手动上传功能
Mar 16 Javascript
js如何找出字符串中的最长回文串
Jun 04 Javascript
vue项目中使用多选框的实例代码
Jul 22 #Javascript
vue中el-input绑定键盘按键(按键修饰符)
Jul 22 #Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 #Javascript
js实现查询商品案例
Jul 22 #Javascript
vue element 关闭当前tab 跳转到上一路由操作
Jul 22 #Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 #Javascript
解决vue-router 切换tab标签关闭时缓存问题
Jul 22 #Javascript
You might like
php Static关键字实用方法
2010/06/04 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
json跟xml的对比分析
2008/06/10 Javascript
jQuery 性能优化指南(3)
2009/05/21 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
Python PIL图片添加字体的例子
2019/08/22 Python
django 取消csrf限制的实例
2020/03/13 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
学校经典推荐信
2013/10/30 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
信仰观后感
2015/06/03 职场文书
解除租赁合同协议书
2016/03/21 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
JS setTimeout与setInterval的区别
2022/04/20 Javascript