vue路由-全局前置守卫

1. 介绍

详见:全局前置守卫网址

使用场景:

  • 对于支付页,订单页等,必须是登录的用户才能访问的,游客不能进入该页面,需要做拦截处理,跳转到登录页面

全局前置守卫的原理:

全局前置守卫是一种路由守卫,它在路由被访问之前进行拦截。它允许我们在路由被访问之前进行一些处理,例如权限验证、请求参数预处理等。在Vue Router中,我们可以通过在路由配置中添加beforeEnter守卫来实现全局前置守卫。

  • 如图:
    在这里插入图片描述

2. 配置全局前置守卫规则

在 src/router/index.js 文件夹中 添加配置:

// 创建一个数组用来存放,需要用户登录的页面路径
const authUrl = ['/pay', '/myorder']
// 创建全局前置守卫
router.beforeEach((to, from, next) => {// 判断是否为权限页面if (!authUrl.includes(to.path)) { // 非权限页面直接放行next()} else {const token = store.getters.token// console.log(token)if (token) {next()} else {next('/login')}}
})

注:

  1. to 往哪里去, 到哪去的路由信息对象
  2. from 从哪里来, 从哪来的路由信息对象
  3. next() 是否放行
  4. 如果next()调用,就是放行
  5. next(路径) 拦截到某个路径页面

完整代码:

import Vue from 'vue'
import VueRouter from 'vue-router'import Home from '@/views/layout/home'
import User from '@/views/layout/user'
import Cart from '@/views/layout/cart'
import Category from '@/views/layout/category'import store from '@/store'const Login = () => import('@/views/login')
const Layout = () => import('@/views/layout')
const Search = () => import('@/views/search')
const SearchList = () => import('@/views/search/list')
const ProDetail = () => import('@/views/prodetail')
const Pay = () => import('@/views/pay')
const MyOrder = () => import('@/views/myorder')Vue.use(VueRouter)const router = new VueRouter({routes: [{path: '/',component: Layout,redirect: '/home',children: [{path: '/home',component: Home},{path: '/user',component: User},{path: '/cart',component: Cart},{path: '/category',component: Category}]},{path: '/login',component: Login},{path: '/search',component: Search},{path: '/searchlist',component: SearchList},{path: '/prodetail/:id',component: ProDetail},{path: '/pay',component: Pay},{path: '/myorder',component: MyOrder}]
})// 创建一个数组用来存放,需要用户登录的页面路径
const authUrl = ['/pay', '/myorder']
// 创建全局前置守卫
router.beforeEach((to, from, next) => {// 判断是否为权限页面if (!authUrl.includes(to.path)) { // 非权限页面直接放行next()} else {const token = store.getters.token// console.log(token)if (token) {next()} else {next('/login')}}
})export default router

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/419055.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中期国际1.18黄金市场分析:零售销售强劲增长,美联储降息可能性大幅降低!

金价在周四下跌,其中一个主要原因是美国国债收益率的持续上升。此外,强劲的美国零售销售报告也对金价造成了影响,该报告显示零售销售额大幅上涨,超出预期值,这使得美联储3月份降息的可能性大幅降低。 12月份的消费者价…

树的一些经典 Oj题 讲解

关于树的遍历 先序遍历 我们知道 树的遍历有 前序遍历 中序遍历 后序遍历 然后我们如果用递归的方式去解决,对我们来说应该是轻而易举的吧!那我们今天要讲用迭代(非递归)实现 树的相关遍历 首先呢 我们得知道 迭代解法 本质上也…

彩色图像处理之伪彩色图像处理的python实现——数字图像处理

原理 伪彩色图像处理是一种多源信息融合的可视化方法。 处理对象:伪彩色图像处理的对象是多波段遥感图像,例如近红外带、红外带和可见光图像等。 原理:选择不同波段的原始图像作为新的三原色通道(如近红外为红色通道),按RGB模式合成伪彩色图像。 目的:利用不同波段信息融合,实…

力扣645.错误的集合

一点一点地刷,慢慢攻克力扣!! 王子公主请看题 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数…

视频监控需求记录

记录一下最近要做的需求,我个人任务还是稍微比较复杂的 需求:需要实现一个视频实时监控、视频回放、视频设备管理,以上都是与组织架构有关 大概的界面长这个样子 听着需求好像很简单,但是~我们需要在一个界面上显示两个厂商的视…

在WIN从零开始在QMUE上添加一块自己的开发板(一)

文章目录 一、前言二、源码编译(一)安装Msys2(二)配置GCC工具链(三)安装QEMU构建依赖(四)下载编译QEMU源码 二、QUME编程基础(一)QOM机制(二&…

Flink处理函数(3)—— 窗口处理函数

窗口处理函数包括:ProcessWindowFunction 和 ProcessAllWindowFunction 基础用法 stream.keyBy( t -> t.f0 ).window( TumblingEventTimeWindows.of(Time.seconds(10)) ).process(new MyProcessWindowFunction()) 这里的MyProcessWindowFunction就是ProcessWi…

什么是中间件?

文章目录 为什么需要中间件?中间件生态漫谈数据库中间件读写分离分库分表引进数据库中间件MyCat 服务端代理模式ShardingJDBC 客户端代理模式 总结 IT 系统从单体应用逐渐向分布式架构演变,高并发、高可用、高性能、分布式等话题变得异常火热&#xff0c…

第十三章 MySQL

第十三章 MySQL 下面是创建数据库操作 删除数据库 右上角选择要操作的数据库 如果关闭了这个控制台,下次如何找到它呢 也可以对其改名

基于YOLOv8的学生课堂行为检测,引入BRA注意力和Shape IoU改进提升检测能力

💡💡💡本文摘要:介绍了学生课堂行为检测,并使用YOLOv8进行训练模型,以及引入BRA注意力和最新的Shape IoU提升检测能力 1.SCB介绍 摘要:利用深度学习方法自动检测学生的课堂行为是分析学生课堂表…

IDEA在重启springboot项目时没有自动重新build

IDEA在重启springboot项目时没有自动重新build 问题描述 当项目里面某些依赖或者插件更新了,target的class文件没有找到,导致不是我们需要的效果。 只能手动的清理target文件,麻烦得很 , 单体项目还好说,一次清理就…

如何系统地自学 Python?【附:Python基础入门教程】

如何系统地自学 Python?【附:Python基础入门教程】 一、确定学习目标 在开始学习Python之前,首先需要明确自己的学习目标。是为了入门编程、转行程序员、提升编程能力,还是为了解决特定领域的问题?只有明确了学习目标&…