当前位置: 首页 > news >正文

Vue的路由守卫

对于绝大部分的网站而言,都是有个人主页的,但是你如果没登陆的话,还能访问个人主页吗? 从逻辑上来讲,那肯定是不行的。 所以,要怎么阻止没登录状态下去访问个人主页呢? 就是利用路由守卫,对路由实现权限控制

而在Vue中,路由守卫分为三种:全局路由守卫独享路由守卫组件内路由守卫

全局路由守卫

顾名思义,全局路由守卫就是对所有的路由都能进行权限控制。 全局路由又分为 全局前置守卫全局后置守卫

全局前置守卫

全局前置守卫,会在组件初始化时调用,每次路由切换之前都会调用。 即 此时处于A页面,想跳转到B页面时,会先通过全局前置守卫进行判断,如果通过了,那就会跳转,否则就阻止跳转。

//全局前置守卫
router.beforeEach((to,from,next) =>{//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象//第三个参数next(),是否往下执行,执行的话,如果不写的话路由就不会跳转,操作将会终止
})

全局后置守卫

全局后置守卫,在组件初始化时调用,以及每次路由切换之后调用。 即,此时处于A页面,要跳转到B页面,在跳转完毕后会执行其中的回调。 所以,一般可以用来路由跳转后的相应页面操作。

router.afterEach((to,from) =>{//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象
}

所以,我们就可以把鉴权的操作写在前置守卫中,而后置守卫可以用于简单的欢迎语弹窗。

//全局前置守卫:初始化时执⾏、每次路由切换前执⾏
router.beforeEach((to,from,next)=>{console.log('beforeEach',to,from)if(to.meta.isAuth){ //判断当前路由是否需要进⾏权限控制if(localStorage.getItem('username') === 'Eric'){ //权限控制的具体规则next() //放⾏ }else{alert('暂⽆权限查看') }}else{ // 当前路由不需要权限控制next() //放⾏ }
})//全局后置守卫:初始化时执⾏、每次路由切换后执⾏
router.afterEach((to,from) => {console.log('afterEach',to,from)if(to.meta.title){document.title = to.meta.title //修改⽹页的title}else{document.title = 'vue_test'}
})

独享路由守卫

独享路由守卫,是在进入组件时被调用,区别在于,想对那个路由进行权限控制就直接在其路由配置项中添加守卫,而其作用域也仅限于该路由。

beforeEnter(to,from,next){//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象//第三个参数next(),是否往下执行,执行的话,如果不写的话路由就不会跳转,操作将会终止
}
效果其实差不多,但全局路由守卫针对所有路由组件,独享路由守卫只服务于被配置的那个路由组件

组件内守卫

当使用路由规则 进入 或者 离开 该组件时,会触发组件内守卫的调用, 组件内守卫 的作用域也仅限于该组件。

//进入守卫:通过路由规则,进入该组件时被调用
beforeRouteEnter (to, from, next) {//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象//第三个参数next(),是否往下执行,执行的话,如果不写的话路由就不会跳转,操作将会终止
},
//离开守卫:通过路由规则,离开该组件时被调用
beforeRouteLeave (to, from, next) {//第一个参数to,包含的内容是切换后的路由对象,也就是跳转后的路由对象//第二个参数from,包含的内容的是切换前的路由对象,也就是跳转前的路由对象//第三个参数next(),是否往下执行,执行的话,如果不写的话路由就不会跳转,操作将会终止
}
它的区别之处就在于 beforeRouteLeave,离开守卫。 它是在要切换出这个组件后被调用,也就是离开组件后调用。 实际中,我们可以利用它来完成某一些的操作,比如 我们切换出该组件时,暂停该组件的一些运行,等我们在切换回这个组件时,再开启运行。

相关文章:

Vue的路由守卫

对于绝大部分的网站而言,都是有个人主页的,但是你如果没登陆的话,还能访问个人主页吗? 从逻辑上来讲,那肯定是不行的。 所以,要怎么阻止没登录状态下去访问个人主页呢? 就是利用路由守卫&#x…...

【算法】151. 反转字符串中的单词

链接:https://leetcode.cn/problems/reverse-words-in-a-string/给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结…...

Azure AI基础到实战(C#2022)-认知服务(2)

目录 ComputerVisionClient Class定义构造函数属性上一节例子Task.Wait 方法其它部分分析winform调用认知服务代码剖析1、调用参数2、定义ComputerVisionClient对象,准备调用 REST API3、Authenticate4、调用REST API,这是重点和关键(1)Lambda 表达式和匿名函数(2)async(3)…...

并发就一定快吗?答:肯定不是啊

文章目录一、多线程概念1.1 程序的并发与并行1.1.1 程序的并行1.1.2 程序的并发1.2 进程与线程1.2.1 进程1.2.2 线程1.2.3 多线程并发就一定快吗?答案直接戳这里👉:多线程并发就一定快吗? 一、多线程概念 在实际应用中&#xff…...

前端的学习路线和方法

一些前端工程师面临的现状 1.没有系统的的学习基础知识 2.技术上存在短板,说句不好听的话,大多数开发者的上升通道都没有明确的路线,大公司还好,小公司基本都是后端作为开发组组长 3.前端各种技术层出不穷,需要花费…...

用C语言写一个自己的shell-Part Ⅱ--execute commands

Part Ⅱ–execute commands Exec This brings us to the exec family of functions. Namely, it has the following functions: execlexecvexecleexecveexeclpexecvp For our needs,we will use execvp whose signature looks like this int execvp(const char *file, cha…...

案例实践|运营腾讯游戏,Proxima Beta 使用 Apache Pulsar 升级团队协作与数据治理...

文章摘要本文整理自 Pulsar Summit Asia 2022 上,Proxima Beta 软件工程师施磊的分享《How to achieve better team integration and data governance by using Apache Pulsar》。本文首先将为大家介绍 CQRS 和 Event Sourcing 概念,便于了解为何 Proxim…...

Hudi的7种索引

1、Bloom Index Bloom Index (default) 使用根据记录键构建的bloom过滤器,也可以使用记录键范围修剪候选文件.原理为计算RecordKey的hash值然后将其存储到bitmap中,为避免hash冲突一般选择计算3次 HoodieKey 主键信息:主要包含recordKey 和p…...

Linux内核(十三)系统软中断 software

文章目录中断概述Linux内核中断软中断相关代码解析软中断结构体软中断类型软中断两种触发方式函数__do_softirq解析定时器的软中断实现解析定时器相关代码总结Linux版本:linux-3.18.24.x 中断概述 中断要求     快进快出,提高执行效率,…...

Linux -- 查看进程 PS 命令 详解

我们上篇介绍了, Linux 中的进程等概念,那么,在Linux 中如何查看进程呢 ??我们常用到的有两个命令, PS 和 top 两个命令,今天先来介绍下 PS 命令~!PS 命令 :作用 &#x…...

C2科一考试道路通行规定

目录 低能见度等恶劣环境下的通行规定 驾驶机动车禁止行为 停车规定 通行常识 高速公路限速规定 三观不一样的人,无论重来多少次,结果都一样 他不会懂你的委屈 只是觉得自已没错 两个人真正的可悲连吵架都不在一个点上 有句话说得好 我要是没点自我…...

进程概念(详细版)

进程的概念本文主要介绍进程的相关知识 文章目录认识冯诺依曼体系结构操作系统的基本概念操作系统的作用是什么系统调用和库函数相关概念进程基本概念描述进程进程控制块(PCB)task_struct 结构体进程是如何被操作系统管理起来的先描述再组织描述好,组织好&#xff0…...

学习大数据应该掌握哪些技能

想要了解大数据开发需要掌握哪些技术,不妨先一起来了解一下大数据开发到底是做什么的~ 1、什么是大数据? 关于大数据的解释,比较官方的定义是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模…...

【spring】Spring Data --Spring Data JPA

Spring Data 的委托是为数据访问提供熟悉且符合 Spring 的编程模型,同时仍保留着相关数据存储的特​​殊特征。 它使使用数据访问技术、关系和非关系数据库、map-reduce 框架和基于云的数据服务变得容易。这是一个伞形项目,其中包含许多特定于给定数据库…...

mysql数据库之视图

视图(view)是一种虚拟的存在,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图之保存了查询的sql逻辑,不保存查询结…...

数据库事务详解

概述事务就是数据库为了保证数据的原子性,持久性,隔离性,一致性而提供的一套机制, 在同一事务中, 如果有多条sql执行, 事务可以确保执行的可靠性.数据库事务的四大特性一般来说, 事务是必须满足 4 个条件(ACID):原子性(Atomicity&…...

Nessus: 漏洞扫描器-网络取证工具

Nessue 要理解网络漏洞攻击,应该理解攻击者不是单独攻击,而是组合攻击。因此,本文介绍了关于Nessus历史的研究,它是什么以及它如何与插件一起工作。研究了Nessus的特点,使其成为网络取证中非常推荐的网络漏洞扫描工具…...

操作系统实战45讲之现代计算机组成

我以前觉得计算机理论不让我感兴趣,而比较喜欢实践,即敲代码,现在才发现理论学好了,实践才能有可能更顺利,更重要的是理论与实践相结合。 在现代,几乎所有的计算机都是遵循冯诺依曼体系结构,而遵…...

Simple Baselines for Image Restoration

Abstract.尽管近年来在图像恢复领域取得了长足的进步,但SOTA方法的系统复杂性也在不断增加,这可能会阻碍对方法的分析和比较。在本文中,我们提出了一个简单的基线,超过了SOTA方法,是计算效率。为了进一步简化基线&…...

Python数据可视化:局部整体图表可视化(基础篇—6)

目录 1、饼图 2、圆环图 3、马赛克图 4、华夫饼图 5、块状/点状柱形图 在学习本篇博文之前请先看一看之前发过的关联知识:...

CSDN新星计划新玩法、年度勋章挑战赛开启

文章目录🌟 写在前面🌟 逐步亮相的活动🌟 勋章挑战赛🌟 新星计划🌟 有付费课程才可参与?🌟 成就铭牌🌟 博客跟社区的关系🌟 写在最后🌟 写在前面 哈喽&#…...

Docker之部署Mysql

通过docker对Mysql进行部署。 如果没有部署过docker,看我之前写的目录拉取镜像运行容器开放端口拉取镜像 前往dockerHub官网地址,搜索mysql。 找到要拉取的镜像版本,在tag下找到版本。 拉取mysql镜像,不指定版本数&#xff0c…...

基于C/C++获取电脑网卡的IP地址信息

目录 前言 一、网卡是什么? 二、实现访问网卡信息 1.引入库及相关的头文件 2.操作网卡数据 3. 完整代码实现 4.结果验证 总结 前言 简单示例如何在windows下使用c/c代码实现 ipconfig/all 指令 提示:以下是本篇文章正文内容,下面案例可供参考…...

28相似矩阵和若尔当标准型

一、关于正定矩阵的一些补充 在此之前,先讲一下对称矩阵中那些特征值为正数的矩阵,这样特殊的矩阵称为正定矩阵。其更加学术的定义是: SSS 是一个正定矩阵,如果对于每一个非零向量xxx,xTSx>0x^TSx>0xTSx>0 正…...

springboot操作MongoDB

启动类及配置import com.mongodb.client.MongoClient;import com.mongodb.client.MongoClients;import com.mongodb.client.internal.MongoClientImpl;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplicatio…...

1月奶粉电商销售数据榜单:销售额约20亿,高端化趋势明显

鲸参谋电商数据监测的2023年1月份京东平台“奶粉”品类销售数据榜单出炉! 根据鲸参谋数据显示,1月份京东平台上奶粉的销量约675万件,销售额约20亿元,环比均下降19%左右。与去年相比,整体也下滑了近34%。可以看出&#…...

跨境数据传输是日常业务中经常且至关重要的组成部分

跨境数据传输是日常业务中经常且至关重要的组成部分。在过去的20年中,由于全球通信网络和业务流程的发展,全球数据流的模式已迅速发展。随着数据从数据中心移到数据中心和/或跨边界移动,安全漏洞已成为切实的风险。有可能违反国家和国际数据传…...

错误: tensorflow.python.framework.errors_impl.OutOfRangeError的解决方案

近日,在使用CascadeRCNN完成目标检测任务时,我在使用这个模型训练自己的数据集时出现了如下错误: tensorflow.python.framework.errors_impl.OutOfRangeError: PaddingFIFOQueue _1_get_batch/batch/padding_fifo_queue is closed and has in…...

springboot项目初始化执行sql

Sprint Boot应用可以在启动的时候自动执行项目根路径下的SQL脚本文件。我们需要先将sql脚本写好,并将这些静态资源都放置在src/main/resources文件夹下。 再配置application.yml: spring.datasource.initialization-mode 必须配置初始化模式initializa…...

Kubernetes之存储管理(中)

NFS网络存储 emptyDir和hostPath存储,都仅仅是把数据存储在pod所在的节点上,并没有同步到其他节点,如果pod出现问题,通过deployment会产生一个新的pod,如果新的pod不在之前的节点,则会出现问题&#xff0c…...

百度如何给网站做评价/推广策略怎么写

523. 连续的子数组和 力扣类似这样的题目实在是不少&#xff0c; 子串使用前缀和的思想&#xff0c;为了记录&#xff0c;使用unordered_map。 class Solution { public:bool checkSubarraySum(vector<int>& a, int k) {if(k0){int t 0;for(int i0;i<a.size();i…...

摄影网站备案/网络营销方案模板

职业中专10-11学年度(第二学期)11春幼师 专业《计算机应用基础》学科期中考试试卷出题人王冉冉阅卷人题号一二三四五六七总分一、名词解释(5’315’)1、位&#xff1a;2、ENIAC&#xff1a;3、字长&#xff1a;二、填空(3’515’)1、计算机系统软件包括&#xff1a;支撑软件、_…...

saas系统是什么样的系统/优化网络培训

点击上方[word精品教程]-右上角[...]-[设为星标⭐]即可第一时间获取最新办公资讯对于办公人员来说&#xff0c;每天和Word打交道&#xff0c;处理各种工作方案、学术报告等文档&#xff0c;Word办公软件玩的溜是最基础的。不仅玩的溜&#xff0c;而且要效率高&#xff0c;才能成…...

做电子商务系统网站/晋城今日头条新闻

这个问题严格来说是肯定有的&#xff0c;kafka只能保证分区内的有序性。 下面是kafka作者Jay Kreps的blog中介绍kafka设计思想的一段话。 Each partition is a totally ordered log, but there is no global ordering between partitions (other than perhaps some wall-clock…...

免费微信小程序制作/百度seo流量

链表05--复杂链表的复制-jz25题目概述解析&参考答案注意事项说明题目概述 算法说明 输入一个复杂链表&#xff08;每个节点中有节点值&#xff0c;以及两个指针&#xff0c;一个指向下一个节点&#xff0c;另一个特殊指针random指向一个随机节点&#xff09;&#xff0c;请…...

做淘宝图的素材搜索网站/百度投诉中心24小时电话

就只是贴了一个代码&#xff0c;部分解释写在代码注释里面了&#xff0c;之后会补上文字解释&#xff1a; 1. 第一种方式&#xff1a; import torch import torchvision import time #用于计时的 from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten,…...