在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 相关文章推荐
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
Jul 31 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
jQuery统计指定子元素数量的方法
Mar 17 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
Aug 24 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
Sep 04 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
Sep 28 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
python保存文件方法小结
2018/07/27 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
python退出循环的方法
2020/06/18 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
啤酒销售实习自我鉴定
2013/09/24 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
承认错误的检讨书
2014/01/30 职场文书
大学校园活动策划书
2014/02/04 职场文书
大学校务公开实施方案
2014/03/31 职场文书
三年级学生评语
2014/04/23 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
董存瑞观后感
2015/06/11 职场文书
贷款收入证明格式
2015/06/24 职场文书