用户正常访问流程为 产品列表页面【a页面】->产品详情页面(选择不同的计划价格因素后点击购买)【b页面】->产品购买页面【c页面】
下面进行如下操作:
c页面 按 <- 返回键 返回了b页面,
而B页面想通过 -> 前进键 回到 c页面。这样的操作是不被允许的。于是我写了如下代码:

  /** 防止从填写表单页面后退之后又前进,会丢失之前所选择的计划价格和价格因素 */beforeRouteEnter (to, from, next) {if (from.name === 'orderInput') {sessionStorage.setItem('preventForward', true)}next()},beforeRouteLeave (to, from, next) {// 如果是从表单填写页返回的并且不是通过购买按钮去往表单填写页面if (to.name === 'orderInput' && sessionStorage.getItem('preventForward') === 'true') {this.showToast('请点击购买按钮进行购买')next(false)} else {next()}},method:{buy(){sessionStorage.setItem('preventForward', false)}}

但是这个操作会有一个问题,当我阻止了一次去往c页面的操作next(false)之后, 如果在b页面 按返回键, 按我们预想的,应该要返回a页面。可这个时候,实际会返回到 c页面。原因就是c页面虽然被我们阻止了,却进入了历史栈中, 我想了个方法来防止这个被禁止的请求加入到栈中。
也就是在 next(false) 前面加入
this.$router.go(-1)
整体代码如下:

beforeRouteEnter (to, from, next) {if (from.name === 'orderInput') {sessionStorage.setItem('preventForward', true)}next()
},
beforeRouteLeave (to, from, next) {// 如果是从表单填写页返回的并且不是通过购买按钮去往表单填写页面if (to.name === 'orderInput' && sessionStorage.getItem('preventForward') === 'true') {this.$router.go(-1)this.showToast('请点击购买按钮进行购买')//这里把next(false)也去掉。兼容移动端。否则在微信操作时,会重复提醒上面那句话//  next(false)} else {next()}
},
method:{buy(){sessionStorage.setItem('preventForward', false)}
}

vue-router next(false) 禁止访问某个页面时,不保留历史访问记录相关推荐

  1. nginx设置禁止访问某个页面及只允许域名访问或某个ip禁止访问

    nginx配置访问某页面时提示404或跳转到首页,在server中配置与location同级下 server {if ($request_uri ~* "/xxxx.html"){ ...

  2. vue——router更改路由地址,但是页面不能跳转

    在做电商项目时,筛选标签时,需要路由发生变化,但是当前的页面商品列表还需要局部刷新. 如果更改路由后,页面跳转,则是全局刷新,局部刷新才能够满足用户需求. 则此时要做的就是:更改路由地址,但是页面不能 ...

  3. 注意避坑,Vue Router 4: 路由参数在 created/setup 时不可用

    有梦想,有干货,微信搜索 [大迁世界] 关注这个在凌晨还在刷碗的刷碗智. 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考 ...

  4. python asp.net requests_python3使用requests访问asp页面时出错,返回500

    学校的官微有个一键查成绩的功能,我一直很想能做出来玩,现在在学习python,正好准备拿来练手,但是访问的时候却出现了500错误. 以下是代码: python import requests impo ...

  5. Nginx设置访问Web页面时用户名密码验证

    1.可能存在的需求 网页不想让所有人访问到,只让知道页面密码的人可以打开 某些组件的web端管理页面无用户名密码认证可直接打开,添加一个用户验证 ES如果不添加search-guard,是否有别的更简 ...

  6. 如何在页面跳转后,再返回上级页面时,保留检索条件,刷新内容

    场景: 主页面:main.jsp 子页面:son.jsp 子页面检索条件:zhonglei,mingcheng,countryCodeS,asins,fnskus,skus 部分子页面代码 //这是子 ...

  7. Vue学习笔记(六)--- 前端路由 Vue Router

    一.路由 1.概念 ​ 路由本质上来说就是一种对应关系,比如说我们在浏览器中输入不同的 url 地址,我们就能访问不同的资源,那么这 url 地址与资源之间的对应关系,就是路由. 2.分类 ① 后端路 ...

  8. 【Vue】相关生态——Vue Router路由

    Vue Router路由 基本使用 带参数的动态路由匹配 捕获所有路由或404 Not found 路由 嵌套路由 编程式导航 重定向和别名 将props传递给路由组件 不同的历史模式 进阶 导航守卫 ...

  9. Vue 学习(十、 Vue Router - 路由插件 和 Vue 的插件原理)

    文章目录 一.Vue Router - 路由插件 1. 安装 Vue Router 2. Vue Router 路由的基本使用 3. 设置 router-link 4. 编程式路由 5. 路由嵌套 6 ...

最新文章

  1. [20170419]bbed探究数据块.txt
  2. 文本分类入门(四)训练Part 1
  3. CENTOS7 Python3.7安装pip模块以及pip使用
  4. 洛谷-DFS-1101-单词方阵-个人AC题解及公共题解的笔记
  5. Java 算法 数字分类
  6. 高通camera调试
  7. extjs FormPanel更改为普通表单提交,提交到iframe显示
  8. 扩展GeoServer数据源
  9. java编译软件 Eclipse 的安装与使用
  10. 第一讲 ISO 17799/27001 标准简介
  11. python与java前景分析-Java和Python哪个未来前景好?
  12. STM32CUDE-STM32F407学习笔记1-点亮LED
  13. 谈谈如何做到从未来看向当代的能源技术
  14. 马云的教、马云的会、马云的墓
  15. 资源小屋(更新ing.......)
  16. 【C语言编程5】复数计算器
  17. vscode输出不滚动_解决 使用VSCode环境进行开发,突然出现卡顿、打字显示缓慢,滚动、选择迟缓等问题...
  18. vrchat新手教程_VRChat简易教程3-往世界里导入模型和VRC接口初探
  19. 4.一起学习Highcharts 配置选项详细说明
  20. 深度学习——神经网络中的activation

热门文章

  1. ESP32_micropython学习(一):点亮一盏灯
  2. 用matlab求恰定方程组的解,初等数论试卷
  3. 有了云服务器能干什么用的_阿里云服务器能干什么用?有啥优势?
  4. 汇付聚合支付自助接入解决方案快捷支付接口代码详解
  5. STM32 10进制转16进制,16进制转10进制 超简单
  6. springboot+基于Java的果蔬产品销售系统 毕业设计-附源码131110
  7. 游戏平台在游戏运营中具有什么优势?
  8. android -fanfou-project-source study
  9. php wap 2.0,WAP2.0网站分类及其架构浅析
  10. Docker容器基础(二) - Docker公司的入场