一.路由守卫就是:

比如说,当点击商城的购物车的时候,需要判断一下是否登录,如果没有登录,就跳转到登录页面,如果登陆了,就跳转到购物车页面,相当于有一个守卫在安检

路由守卫有三种:
1:全局钩子: beforeEach、 afterEach
2:独享守卫(单个路由里面的钩子): beforeEnter、 beforeLeave
3:组件内守卫:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave

全局守卫

router.beforeEach() 进入之前触发

router.afterEach() 进入之后触发
每个守卫方法接收三个参数:

①to: Route: 即将要进入的目标路由对象(to是一个对象,是将要进入的路由对象,可以用to.path调用路由对象中的属性)

②from: Route: 当前导航正要离开的路由

③next: Function: 这是一个必须需要调用的方法,执行效果依赖 next 方法的调用参数。

【路由守卫写在main.js文件,或者写在router文件夹下的index.js文件】

① 前置路由守卫(每次切换前被调用)

首先先在需要配置路由守卫的地方加上 meta: { isAuth: true }

    {path: '/',name: 'Home',component: () => import('../views/Home.vue'),meta: { isAuth: true, title:'主页' },},
//全局前置路由守卫————初始化的时候被调用、每次路由切换之前被调用
router.beforeEach((to, from, next) => {//如果路由需要跳转if (to.meta.isAuth) {//判断 如果school本地存储是qinghuadaxue的时候,可以进去if (localStorage.getItem('school') === 'qinghuadaxue') {next()  //放行} else {alert('抱歉,您无权限查看!')}} else {// 否则,放行next()}
})

② 后置路由守卫(每次切换后被调用)

是路由跳转之后执行的事件,可以用作跳转路由后更改网页名

首先路由的meta需要配置title的名字

    {path: '/',name: 'Home',component: () => import('../views/Home.vue'),meta: { isAuth: true, title:'主页' },},
//全局后置路由守卫————初始化的时候被调用、每次路由切换之后被调用
router.afterEach((to, from) => {document.title = to.meta.title || '默认名'    //修改网页的title
})

③ 独享路由守卫(某一个路由所单独享用的路由守卫)

独享路由守卫只有前置没有后置

    {path: '/',name: 'Home',component: () => import('../views/Home.vue'),meta: { isAuth: true },beforeEnter: (to, from, next) => {if (to.meta.isAuth) { //判断是否需要授权if (localStorage.getItem('school') === 'qinghuadaxue') {next()  //放行} else {alert('抱歉,您无权限查看!')}} else {next()  //放行}}},

④ 组件内守卫(某一个路由所单独享用的路由守卫)

独享路由守卫只有前置没有后置,直接写在.vue文件中

//通过路由规则,进入该组件时被调用
beforeRouteEnter(to,from,next) {if(toString.meta.isAuth){if(localStorage.getTime('school')==='qinghuadaxue'){next()}else{alert('学校名不对,无权限查看!')}} else{next()}
},//通过路由规则,离开该组件时被调用
beforeRouteLeave(to,from,next) {next()
}

Vue路由守卫(通俗易懂)相关推荐

  1. vue路由守卫中next方法的理解

    vue路由守卫中next方法的理解 在网上看到了一篇通俗易懂的文章,此文章出处 在这里我用通俗点的说法解释上next(),next(false),next('/'),next(error),希望通过这 ...

  2. reactrouter4路由钩子_react router @4 和 vue路由 详解(八)vue路由守卫

    13.vue路由守卫 a.beforeEach 全局守卫 (每个路由调用前都会触发,根据from和to来判断是哪个路由触发) const router = new VueRouter({ ... }) ...

  3. vue路由守卫死循环及next原理解释

    ​ 在使用vue路由守卫的beforeEach方法时可能会出现无限递归,也就是死循环的问题,根本原因在于next()方法在不合适的地方错误调用所致,先来看一下官方对next()方法的解释: befor ...

  4. Vue路由守卫(导航守卫)及使用场景

    目录 前言 一.路由守卫是什么? 二.路由守卫全解析 先来看一下钩子函数执行后输出的顺序吧 1.全局路由守卫 2.组件路由守卫 3.路由独享守卫 单独介绍一下路由守卫钩子三个参数 前言 最近在学习vu ...

  5. VUE路由守卫_前端实现权限验证

    VUE路由守卫_权限验证 引言: 本文在利用SpringBoot和Vue实现前后端分离一文的基础上追加的路由守卫:未登录时会限制访问某些页面(前台控制),与之前的Shiro不同: 文章目录 VUE路由 ...

  6. vue路由守卫有哪三种类型

    vue中路由守卫一共有三种,分别为:全局路由守卫(全局前置守卫.全局后置守卫),组件内路由守卫,路由独享守卫(是在路由配置页面单独给路由配置的一个守卫). 路由守卫,也可以是路由拦截,我们可以通过路由 ...

  7. vue路由守卫beforeEach和afterEach

    路由守卫 路由前置守卫beforeEach 路由在每次切换之前,都会到用一个函数:beforeEach 举个简单的栗子:如果当前跳转的路由路径是/home或者/about时才能查看页面,否则提示无权限 ...

  8. VUE 路由守卫 next() / next({ ...to, replace: true }) / next(‘/‘) 说明

    最近因为next()遇到了不少问题,在这里记录一下 首先是路由守卫,是不是感觉简简单单 beforeEach((to, from, next) => {to // 要去的路由from // 当前 ...

  9. Vue路由守卫(导航守卫)

    路由守卫包括全局守卫(beforeEach()).路由独享守卫(beforeEnter()).组件内守卫(beforeRouteEnter().beforeRouteLeave()) 1.全局守卫(b ...

  10. vue路由守卫的使用

    使用路由守位我们需要使用vuex来存放全局的用户信息 ①存在全局用户信息 1.首先展示我的项目路径 2.store/index.js文件内容如下: 这里主要是引入一些文件,以及进行挂载 import ...

最新文章

  1. Node Mysql事务处理封装
  2. IDEA2018软件安装教程
  3. JavaScript判断字符串中包含另一个字符串(QML 中使用)
  4. 一个封装了的ADO类,功能非常强大,并做了一个DEMO演示如何操作ACCESS数据库
  5. es6 Class 的 Generator函数
  6. python读取视频占用内存太大_Python 读取大文件内存占用检测示例
  7. python rsa库_Python中rsa模块【sign 加签验签】的使用
  8. 关于$.ajax的请求格式
  9. cocos2d-x开启Wifi
  10. asp.net post任何数据类型流到网站--当当网API传XML文件
  11. php 入库验证,mayfish 数据入库验证代码
  12. 四川大学计算机在线作业,四川大学计算机操作系统试题
  13. ubuntu文件夹加密_安装Ubuntu后如何加密您的主文件夹
  14. Ceph运维告诉你分布式存储的那些“坑”
  15. 2021会宁三中高考成绩查询,会宁机电工业学校2021年招生录取分数线
  16. Emlog采集插件 刀网资源采集 一键显示资源1.1
  17. ZABBIX 监控基本报警故障
  18. DTC趋势 | 2022年值得关注的10个DTC趋势
  19. c语言程序设计实用教程 清华大学出版社,清华大学出版社-图书详情-《C程序设计教程》...
  20. Saturn Executor部署过程

热门文章

  1. 夜神/逍遥/雷电/51/网易MUMU/腾讯手游助手等模拟器多开模拟器分配不同ip的办法
  2. NCURSES程序设计之魔数方阵
  3. 杭州电子科技大学 计算机专硕复试分数线,2020杭州电子科技大学考研复试分数线已公布...
  4. selenium实现自动登录B站
  5. Rust异步之Future
  6. Error: invalid operands (*UND* and *UND* sections) for `*‘
  7. st58服务器装系统,安装系统 - 微擎 - 公众平台自助开源引擎
  8. win10 网卡优先级修改
  9. 金蝶KIS专业版V14.1即时库存查询表添加字段条形码|商品描述|最低最高存量
  10. Type C DP简介