在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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
Apr 11 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
Jun 29 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
一道面试题引发的对javascript类型转换的思考
Mar 06 Javascript
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
layui 表单标签的校验方法
Sep 04 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
Nov 01 Javascript
非常漂亮的js烟花效果
Mar 10 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中序列化与反序列化详解
2017/02/13 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
怎么清空javascript数组
2013/05/11 Javascript
JS简单计算器实例
2015/01/20 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
python实现TF-IDF算法解析
2018/01/02 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
Python编程求质数实例代码
2018/01/31 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
Python的pygame安装教程详解
2020/02/10 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
用C语言实现文件读写操作
2013/10/27 面试题
利用指针变量实现队列的入队操作
2012/04/07 面试题
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
Python学习之时间包使用教程详解
2022/03/21 Python