位置: IT常识 - 正文

vue3框架Vite + vue Router + ts 登录后返回上一页或首页(vue3框架的优点)

编辑:rootadmin
vue3框架Vite + vue Router + ts 登录后返回上一页或首页

推荐整理分享vue3框架Vite + vue Router + ts 登录后返回上一页或首页(vue3框架的优点),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3框架完善,vue3框架的优点,vue3框架简单描述,vue3框架介绍,vue3框架的优点,vue3框架是什么,vue3框架完善,vue3框架介绍,内容如对您有帮助,希望把文章链接给更多的朋友!

项目(Vue3):Vite + vue Router + ts

需求描述:

登录后跳转情况: ① 项目中有些页面是需要登录后才可以访问的,如果没有登录的情况下,访问该页面会自动跳转到登录页,完成登录操作后,需要再次返回到该页面

② 如果直接访问登录页,登录后跳转到首页

页面访问限制:路由守卫

访问页面时,进行限制,除了部分不需要登录就可以访问的页面,其他需要登录才可以访问的页面,未登录时访问时,跳转到登录页

vue3框架Vite + vue Router + ts 登录后返回上一页或首页(vue3框架的优点)

在 main.ts 文件中添加全局前置守卫:router.beforeEach

1.找到 “router” 文件夹下的 “index.ts” 文件,在 路由文件中配置路由信息,设置 meta 下的 requiresAuth 字段值,

如果需要登录后才可以查看页面 - - - meta: { requiresAuth: true }

代码示例:{ path: '/order', name: 'order', component: () => import('../views/order/index.vue'), meta: { title: '我的订单', requiresAuth: true, }},

不需要登录就可以查看页面 - - - meta: { requiresAuth: false }

代码示例:{ path: '/login', name: 'login', component: () => import('../views/login/index.vue'), meta: { title: '登录', requiresAuth: false, }},

如图所示:

2.在 “main.ts” 文件中引入 routerimport router from './router'3.在 “main.ts” 文件中添加全局守卫设置代码示例:router.beforeEach((to, from, next) => { const token = localStorage.getItem('authToken'); if(to.meta.requiresAuth) { if(token) { next(); } else { next({ path: '/login', query: { redirect: to.fullPath } // 记住要访问的页面路由地址,后面登录后跳转会用到该值 }) } } else { next(); }})

注意:localStorage.getItem(‘authToken’) 是获取 token 值,如果没有的话就是没登录,如果登陆了,需要登录成功时将 token 值 存到 localStorage, 如果需要设置登录过期时间,需要进行 token 值清空处理,可以放到 cookie 中,或采取其他存储方式

到这里就设置了页面访问限制,如果需要登录后才可以访问的页面,浏览器中输入页面地址会自动跳转到登录页

登录后页面跳转上一页或首页设置:1.登录页引入 useRoute, useRouter

如果 登录页为 login.vue,则在 login.vue 文件中 引入 路由:

import { useRoute, useRouter } from 'vue-router';2.获取路由信息,登录成功后返回上一页或跳到首页

获取路由参数 “ route.query.redirect ” 字段信息,如果有 “redirect ” 字段值且不为空,说明是访问其他页面时没登录跳到了登录页,redirect 值记录的是 该页面的地址,登录后再到 “redirect ” 记录的这个地址,就是返回之前要访问的页面 否则,如果没有 “ redirect ”字段信息,或者值为空,登录后就跳到首页

代码示例:const router = useRouter();const route = useRoute();const redirectUrl = route?.query?.redirect;const redirectUrlStr = ref('')if(redirectUrl) { redirectUrlStr.value = redirectUrl.toString();}// 请求接口,登录校验async function loginCheckFn(mobileVal: string, codeVal: string) { const res = await login({ 'mobile': mobileVal, 'code': codeVal }); // 按自己实际登录接口请求写 console.log(res); const { code, reason, result }: any = res; if(code == 0) { // 登录成功 localStorage.setItem('authToken', result.authToken); // 返回上一页或者首页 if(redirectUrl) { router.push({ path: redirectUrlStr.value }) } else { router.push({ path: '/' }); } } else { // 登录失败 console.log(reason); }

更多路由知识可以查看 vue Router 官方文档 ~

本文链接地址:https://www.jiuchutong.com/zhishi/288974.html 转载请保留说明!

上一篇:使用idea运行VUE项目(idea怎么运行前端vue项目)

下一篇:Spring Boot接收从前端传过来的数据常用方式以及处理的技巧(spring boot 接受参数)

  • 小米mix4怎么双击亮屏(小米mix4手机分身在哪里)

    小米mix4怎么双击亮屏(小米mix4手机分身在哪里)

  • adobe photoshop是什么软件

    adobe photoshop是什么软件

  • 在快手上买的东西为什么没有显示(快手里买的东西)

    在快手上买的东西为什么没有显示(快手里买的东西)

  • 重复值颜色怎么取消(重复项颜色)

    重复值颜色怎么取消(重复项颜色)

  • 1ua等于多少毫安(一ua等于多少安)

    1ua等于多少毫安(一ua等于多少安)

  • 苹果11通话外漏声音大(苹果11通话外漏声音)

    苹果11通话外漏声音大(苹果11通话外漏声音)

  • 抖音被判定为搬运过多,还能恢复吗(抖音被判定为搬运限流)

    抖音被判定为搬运过多,还能恢复吗(抖音被判定为搬运限流)

  • 抖音右下角出现好友头像啥意思(抖音右下角出现好友头像和私信是什么意思)

    抖音右下角出现好友头像啥意思(抖音右下角出现好友头像和私信是什么意思)

  • 京东买的苹果手机激活了可以退货吗(京东买的苹果手机售后去哪里维修)

    京东买的苹果手机激活了可以退货吗(京东买的苹果手机售后去哪里维修)

  • 刘海屏和全面屏区别(刘海屏和全面屏打游戏哪个好)

    刘海屏和全面屏区别(刘海屏和全面屏打游戏哪个好)

  • 手机自带软件误删怎么恢复(手机自带软件被误删?看这里一键找回!)

    手机自带软件误删怎么恢复(手机自带软件被误删?看这里一键找回!)

  • iphone检测到液体无法充电(iphone检测到液体无法充电还能继续用吗)

    iphone检测到液体无法充电(iphone检测到液体无法充电还能继续用吗)

  • etc怎么开机和关机(etc设备怎样开机)

    etc怎么开机和关机(etc设备怎样开机)

  • tp-link路由器设置管理员密码是什么(tplink路由器设置网址密码)

    tp-link路由器设置管理员密码是什么(tplink路由器设置网址密码)

  • 磁盘指的是什么(什么叫磁盘)

    磁盘指的是什么(什么叫磁盘)

  • 苹果11几个卡(苹果14能插几个卡)

    苹果11几个卡(苹果14能插几个卡)

  • word页面字符怎么设置(word文档页面设置字符数和行数)

    word页面字符怎么设置(word文档页面设置字符数和行数)

  • 网络卡顿怎么处理(网络卡顿怎么处理无线)

    网络卡顿怎么处理(网络卡顿怎么处理无线)

  • 手机镀膜一次能管多久(手机镀膜一次能用多久)

    手机镀膜一次能管多久(手机镀膜一次能用多久)

  • 怎么查手机的激活日期(怎么查手机的激活日期华为)

    怎么查手机的激活日期(怎么查手机的激活日期华为)

  • 苹果商店显示英文(苹果商店显示英文怎么改中文ios16)

    苹果商店显示英文(苹果商店显示英文怎么改中文ios16)

  • 拼多多浮窗在哪里关闭(拼多多怎样开启浮窗)

    拼多多浮窗在哪里关闭(拼多多怎样开启浮窗)

  • 微信听语音黑屏(微信听语音黑屏是怎么回事)

    微信听语音黑屏(微信听语音黑屏是怎么回事)

  • 【web前端基础之HTML】——HTML基本知识(web前端基础是什么)

    【web前端基础之HTML】——HTML基本知识(web前端基础是什么)

  • 进项税额转出要交企业所得税吗
  • 车船使用税怎么网上缴费
  • 一般纳税人开普票税率是多少
  • 进项税和销项税税率一样吗
  • 关税税收优惠记忆口诀
  • 开票和收到的款金额不一样怎么办?
  • 利润分配转作股本股利
  • 2019个体户经营所得税税率表
  • 享受专项附加扣除该怎么申报
  • 企业多缴纳所得税怎么办
  • 无形资产的加计扣除为什么不影响应纳税所得额
  • 企业自用房要交契税吗
  • 无形资产的初始计量和后续计量
  • 小规模纳税人出售使用过固定资产
  • 发票从7月1日起开
  • 企业不能抵扣的专票有哪些
  • 公司租房可以入公积金吗
  • 法人实名认证后为什么查不到名下公司
  • 物物交换增值税处理
  • win11和win10哪个玩游戏好
  • 人力资源管理师考试时间
  • 事业单位服务收入怎么做账
  • kb4577266补丁
  • php字符串变量
  • php如何防止xss攻击
  • 即征即退,先征后退,先征后返的区别?
  • php数据类型分为哪几类
  • 企业的罚款支出指企业的行政罚款
  • 现代服务业进项税加计扣除申报怎么填
  • 投资收益会计准则
  • 物业公司购买空调合法吗
  • 增值税申报主表在哪里查询
  • 什么是大语言模型(LLM)?
  • 量子退火算法入门6
  • 可回收垃圾有哪些?
  • ps怎么参考线快捷键
  • 公司租车公司
  • 长期挂账的"其他应收款"该怎么处置
  • 报税营业成本包括什么
  • 制造费用月末一般有余额吗
  • 织梦面包屑导航最后的分隔符大于号去掉方法
  • 织梦怎么用
  • 年终汇算清缴所得税计算器
  • 一般纳税人报税时间每月的多少号
  • 购房补贴退契税多久到账
  • 租赁收入相关的会计准则
  • 民间非营利组织会计制度最新版
  • 建筑企业业务招待费
  • 明细分类账表格
  • xampp网页服务器配置文件名
  • ubuntu怎么录音
  • apache服务器配置与使用工作笔记
  • 电脑windows8怎么样
  • win7系统咋样
  • win7更改ip地址后有网络无法上网
  • 实用的linux命令
  • js模拟登录网站
  • cocos安装
  • myeclipse创建
  • apache部署项目
  • JavaScript—window对象使用示例
  • centos 开机启动程序
  • Node.js中的全局变量有哪些
  • 数据库多表连接的几种方式
  • Unity3D中Enabled、Destroy与Active的区别
  • Optimizing Unity Games for Mobile Platforms
  • unity 人物控制
  • JavaScript 入门·JavaScript 具有全范围的运算符
  • python怎么写爬虫
  • jquery插件库免费
  • android开发框架mvp
  • 银行人员司法查询给查错了,怎么办
  • 工资6200要交多少个人所得税
  • 外地经营预缴企业所得税
  • 餐饮企业需要缴纳哪些税
  • 北京地方税务局电话
  • 广西地方税务局2017年公务员拟录用
  • 12366重庆电子税务局
  • 宝鸡二套房契税多少
  • 湖南增值税起征点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设