Vue 如何实现登录后,跳转到登录之前要访问的页面

一、需求

有些时候,需要实现这样的功能:

  1. 项目中的有些页面是可以直接访问的,不需要登录。
  2. 但这个页面中的一些链接一些路径则需要登录后才能查看,也就是说点击这些链接的时候就直接跳转到登录页面了
  3. 在登录之后,需要重新定位到之前要访问的路径上去,而不是跳转到登录后的默认路径中

举个例子说:

  1. login 成功后会自动跳转到 /index 页面
  2. /index 页面中有一个 /user/info 的快捷路径
  3. 未登录之前点击 /user/info 这个路径,会直接跳转至 /login 页面
  4. 此时需要实现这样的功能,在登录之后,再回到之前要访问的 /user/info 路径上去

二、实现思路

那么如何实现这个需求呢。
用 store 来实现

  1. store.state 中新建一个变量 lastVisitPath 记录进入登录页面之前要去的 path
  2. 登录成功之后,判断 lastVisitPath 这个变量是否有值,如果有,就跳到这个路径上去,并清空这个变量值

三、实现

在 router 的 beforeEach 方法中判断,在跳转至登录之前记录这个 lastVisitPath

// 引入 state 和 mutation
computed: {...mapState(['lastVisitRoute'])
},
methods: {...mapMutations(['SET_LAST_VISIT_ROUTE']),
}//
if (token) {} else {store.commit('SET_LAST_VISIT_ROUTE', to.path)next({path: '/login'})
}

登录成功后,如果存在 lastVisitPath 就跳转到它

// 引入 state 和 mutation
computed: {...mapState(['lastVisitRoute'])
},
methods: {...mapMutations(['SET_LAST_VISIT_ROUTE']),
}//
if (this.lastVisitRoute){this.$router.push({path: this.lastVisitRoute}).then(res => {// 跳转成功后,清除这个 lastVisitRoute 变量值this.SET_LAST_VISIT_ROUTE(null)}).catch(error => {console.log(error)});
} else {this.$router.push({path: '/'}).catch(error => {console.log(error)})
}

Vue 如何实现登录后,跳转到登录之前要访问的页面相关推荐

  1. Spring Security——实现登录后跳转到登录前页面

    基本概念 暂无. 官方文档 https://docs.spring.io/spring-security/site/docs/5.3.1.BUILD-SNAPSHOT/reference/html5/ ...

  2. Struts 拦截器权限控制【通过拦截器实现登录后跳转到登录前页面】

    应用情形:在web项目中,经常会遇到用户未登录或SESSION失效时用户发出非法的权限操作,如新闻的评论.文件的下载等等,在此我们可以使用struts拦截器对该用户发出的请求进行拦截,拦截后判断用户是 ...

  3. cas → 注销登录后跳转到登录页

    cas单点登出后,默认会跳到它自带的注销界面(cas-server部署见:cas5.3:CAS Server搭建 ),业务需求往往需要跳转到自定义页面,具体实现如下: 在 application.pr ...

  4. 若依前后端分离框架去掉首页 登录后跳转至动态路由的第一个路由

    若依前后端分离框架去掉首页 登录后跳转至动态路由的第一个路由 若依框架VUE前端界面,登录后默认跳转至动态路由第一路由(第一个子菜单) 一.登录后跳转第一路由界面 二.设置路由的首页路径,方便后续的获 ...

  5. 织梦会员登录PHP,DEDECMS会员登录后跳转首页的简单实现方法

    DEDECMS会员登录后跳转首页的简单实现方法 互联网   发布时间:2009-06-06 15:06:24   作者:jb51   我要评论 关键字描述:简单 实现 方法 首页 会员 登录 & ...

  6. php页面怎么去登录,php中登录后跳转回原来要访问的页面实例

    在很多网站用户先访问一个要登录的页面,但当时没有登录后来登录了,等待用户登录成功之后肯定希望返回到上次访问的页面,下面我就来给大家介绍登录后跳转回原来要访问的页面实例 最简单的办法就是直接使用php ...

  7. 登录页面,登录后跳转不成功

    一.登录后跳转不成功,原因未知 二.分析①:404错误:用户操作资源不存在 分析②: action跳转地址为:http:/localhost:80/day0901/login 网页中登录后实际跳转地址 ...

  8. Django:文章详情页面评论功能需要登录后才能使用,登录后自动返回到文章详情页...

    背景: 文章详情页正在查看文章,想评论一下写的不错,但是需要先登录才能.页面长这个样子: 方案: 1.点击登录链接时,将该页面的URL传递到登录视图中 request.path获取的是当前页面的相对路 ...

  9. php拦截登录页面跳转页面,PHP未登录自动跳转到登录页面

    PHP未登录自动跳转到登录页面 下面一段代码给大家分享php未登录自动跳转到登录页面,具体代码如下所示: namespace Home\Controller; use Think\Controller ...

  10. mysql的免密码登录_mysql免密码登录(mysql跳过密码登录)

    mysql免密码登录(mysql跳过密码登录) 2020-05-15 13:07:13 共10个回答 1.用系统管理员登陆windows系统.2.停止MySQL的服务.3.运行cmd进入dos命令窗口 ...

最新文章

  1. NAR:UNITE真菌鉴定ITS数据库——处理未分类和并行分类(数据库文章阅读笔记Markdown模板)...
  2. 栈(stack)和堆(heap)
  3. 宏基aspire拆机触摸_如何拆解宏基Acer Aspire 4530
  4. 初二下册计算机考试试题,2017下半年计算机等级考试二级Java模拟试题及答案(18)...
  5. 安装MAMP后的控制台访问mysql问题
  6. c 递归下降识别程序_程序员的算法课(3)-递归(recursion)算法
  7. 真相了!为什么华为不惜成本也要支持外置存储卡扩展?
  8. Hadoop CapacitySchedule配置
  9. Mocker API 2.7.0 为 REST API 创建模拟 API
  10. 计算机机房建设标准.doc,计算机机房建设规范标准
  11. Centos禁止屏幕虚拟键盘弹出
  12. python 处理excel公式_python 处理excel踩过的坑——data_only,公式全部丢失
  13. 全球及中国图书出版发行业营销策略与运行前景分析报告2022版
  14. matlab spams工具箱,matlab---SPAMS稀疏建模工具箱
  15. 网络钓鱼仍然是安全行业的祸害
  16. 51单片机程序烧写说明
  17. Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制
  18. 我的开源项目从0到1024的过程
  19. Scratch3.0 二次开发(3)修改菜单栏
  20. huffman编码压缩c语言,用Huffman编码对文件进行压缩的C语言实现

热门文章

  1. 写博客文档的神器:Typora 、Mathpix Snipping Tool
  2. 我这些年从来没有用过算法,除了出去面试的时候
  3. ios游戏源码下载网站推荐
  4. 订单紧急变动?交期无法确定?APS了解一下
  5. 在 Create-React-App 中使用 TypeScript(汉化)
  6. DB207S-ASEMI手机快充适配器标配整流桥
  7. Android 9.0 新特性
  8. 云主机磁盘存储动态扩容(LVM)方案
  9. 【大数据开发】SparkCore——进阶算子、Action算子、查看分区数的三种方式
  10. iOS滚动的导航条(仿网易新闻)