在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 相关文章推荐
javascript编程起步(第二课)
Jan 10 Javascript
JSON JQUERY模板实现说明
Jul 03 Javascript
javascript克隆对象深度介绍
Nov 20 Javascript
jQuery使用height()获取高度需要注意的地方
Dec 13 Javascript
javascript中Math.random()使用详解
Apr 15 Javascript
JS动态日期时间的获取方法
Sep 28 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
Jun 15 Javascript
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
谈谈JavaScript中的函数
Sep 08 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
thinkphp 多表 事务详解
2013/06/17 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
jquery实现心算练习代码
2010/12/06 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
js实现聊天对话框
2020/02/08 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
python视频按帧截取图片工具
2019/07/23 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
简历的自荐信
2013/12/19 职场文书
监理资料员岗位职责
2014/01/03 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
安全责任协议书
2014/04/21 职场文书
毕业生面试求职信
2014/06/23 职场文书
房产公证书
2015/01/23 职场文书
复试通知单模板
2015/04/24 职场文书
教师远程研修感悟
2015/11/18 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
mysql事务隔离级别详情
2021/10/24 MySQL
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL