vue实战——路由访问权限【详解】

news/2024/7/5 2:16:47

路由访问权限逻辑

  • 有的页面无需用户登录即可查看,如登录页、注册页、找回密码页、主页、对外公开的其他页面等。
  • 有的页面需要用户登录后才能查看,如用户中心、博客编辑页等。

核心技术

Vue Router 路由守卫
https://blog.csdn.net/weixin_41192489/article/details/117409477

代码范例

src\router\index.js
在需要登录才能访问的路由上添加路由meta元数据,以用户中心为例:

  // 用户中心
  {
    path: "/userCenter",
    meta: { requiresAuth: true },
    component: (resolve) => require(["@/views/userCenter/index.vue"], resolve),
  },

添加全局路由守卫

import store from "@/store";
const router = new VueRouter({
  routes,
});

// 全局路由守卫
router.beforeEach((to, from, next) => {
  // 需鉴权的路由—— 判断路由的meta元数据中,是否requiresAuth为true
  if (to.matched.some((record) => record.meta.requiresAuth)) {
    // 判断用户是否已登录
    if (store.state.isLogin) {
      // 已登录,则跳转到目标路由(需要用户登录的页面)
      next();
    } else {
      // 未登录,跳转到登录页
      next("/login");
    }
  } else {
    // 公共页面,直接跳转到目标路由
    next();
  }
});

export default router;
  • 通过路由meta元数据中的 requiresAuth 字段来判断该路由的访问是否需要用户登录。
  • 通过 vuex 中的 isLogin 字段来判断用户是否登录。

用户登录成功后,需执行的逻辑:

this.$store.commit("set_isLogin", true);

相关的 vuex 代码
src\store\index.js

  • state 中
isLogin: false,
  • mutations 中
set_isLogin(state, value) {
  state.isLogin = value;
},

http://lihuaxi.xjx100.cn/news/1776473.html

相关文章

平安人寿基于 Apache Doris 统一 OLAP 技术栈实践

导读:平安人寿作为保险行业领军企业,坚持技术创新,以数据业务双轮驱动的理念和更加开放的思路来应对不断增长的数据分析和应用需求;以深挖数据价值、保障业务用数效率为目标持续升级大数据产品体系。自 2022 年起平安人寿开始引入…

LeetCode(4)删除有序数组中的重复项 II【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 80. 删除有序数组中的重复项 II 1.题目 给你一个有序数组 nums ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数…

媒体聚焦丨四维图新旗下杰发科技王璐:设计决定芯片质量

编者按:新四化、软件定义汽车使汽车芯片成为了最新的半导体增长极,催生了汽车芯片的数量呈倍速增长,汽车芯片功能越来越复杂,迭代速度也越来越快。汽车芯片厂商从最初的设计开始,就要按照车规级芯片的要求对芯片进行全…

烟草5G智慧工厂数字孪生可视化平台,赋能烟草工业数字化智慧转型

随着卷烟工厂提质增效需求增强,信息化建设推进及生产制造系统智能化改革发展,各生产单元逐步升级完善数字化,最终实现智能制造成为必然趋势。因此,5G卷烟加工工厂的数字化转型迫在眉睫。中国烟草制造行业正迈向全新的市场经济时代…

JavaScript中的Math

JavaScript中的Math对象提供的方法, 比如 Math.floor()向下取整, Math.ceil()向上取整, Math.round()四舍五入取整等。 例如,如果你想要将 num/pianhe 的结果取整后赋值给 #btboxnum 元素,你可以这样做&#xff1…

网络安全-黑客技术-小白学习

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录

近期在使用STM32H563ZIT6这款芯片在开发板上使用正常,烧录到自己打的板子就遇到了芯片烧录一次后,再次上电无法烧录的问题。 遇到问题需要从以下5点进行分析。 首先看下开发板的原理图 1.BOOT0需要拉高。 2.NRST脚在开发板上是悬空的。这里我建议大家…

故障诊断模型 | Maltab实现ELM极限学习机的故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现ELM极限学习机的故障诊断 模型描述 在机器学习领域,我们常常需要通过训练数据来学习一个函数模型,以便在未知的数据上进行预测或分类。传统的神经网络模型需要大量的参数调整和…