vue 路由守卫 解析
路由守卫:保护路由的安全。控制路由跳转权限。路由跳转有两种方式:1 、<router-link>方式,2、编程式跳转。路由守卫:控制路由在符合某种条件下才能完成跳转。
一、全局路由守卫
全局,所有的路由,此时需要找路由器router,可以是在src/router/index.js文件中,也可以是在main.js中,亦或者是在与某个引入了src/router/index.js文件暴露的router的perssion.js文件中(需要在main.js中引入),借助beforeEach()/afterEach()实现
1. 全局前置路由守卫
前置,在路由切换之前判断,不符合条件则不跳转。在初始化的时候调用,在路由切换的时候调用
// to:要去的路由,from:当前路由,next:触发跳转
router.beforeEach((to, from, next) => {
...逻辑
next()
}
2.全局后置路由守卫
后置,在跳转之后判断,不管符不符合,路由都会跳转,浏览器地址栏都会变化,多用于跳转后修改页签标题等。
// to:要去的路由,from:当前路由
router.afterEach((to, from) => {
...逻辑
}
二、独享路由守卫
某一个路由单独享有的路由守卫,需要在配置路由的地方,添加beforeEnter函数,只有前置,没有后置
{name: 'home',path: '/home',component: () => import('@/views/home/Home),meta: { isAuth: true, title: '首页' },beforeEnter: (to, from, next) => { /*... //逻辑if(to.meta.isAuth){if(条件){next()}else {alert('暂无权限查看')}}else{next()}*/}
}
三、组件内路由守卫
组件内的路由守卫,属于data,methods等的同等级配置选项
// 通过路由规则进入该组件时被调用
// 不可以访问组件实例 `this`
beforeRouteEnter(to, from, next){console.log('beforeRouteEnter', to. from)next()
}// 在当前路由改变,但是该组件被复用时调用
// 如 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候
// 可以访问组件实例 `this`
beforeRouteUpdate(to, from, next){console.log('beforeRouteEnter', to. from)next()
}// 通过路由规则离开该组件时被调用,跳转结束,而是离开该组件
// 可以访问组件实例 `this`
beforeRouteLeave(to, from, next){console.log('beforeRouteEnter', to. from)next()
}
vue 路由守卫 解析相关推荐
- reactrouter4路由钩子_react router @4 和 vue路由 详解(八)vue路由守卫
13.vue路由守卫 a.beforeEach 全局守卫 (每个路由调用前都会触发,根据from和to来判断是哪个路由触发) const router = new VueRouter({ ... }) ...
- Vue路由守卫(导航守卫)及使用场景
目录 前言 一.路由守卫是什么? 二.路由守卫全解析 先来看一下钩子函数执行后输出的顺序吧 1.全局路由守卫 2.组件路由守卫 3.路由独享守卫 单独介绍一下路由守卫钩子三个参数 前言 最近在学习vu ...
- vue路由守卫死循环及next原理解释
在使用vue路由守卫的beforeEach方法时可能会出现无限递归,也就是死循环的问题,根本原因在于next()方法在不合适的地方错误调用所致,先来看一下官方对next()方法的解释: befor ...
- vue路由守卫中next方法的理解
vue路由守卫中next方法的理解 在网上看到了一篇通俗易懂的文章,此文章出处 在这里我用通俗点的说法解释上next(),next(false),next('/'),next(error),希望通过这 ...
- VUE路由守卫_前端实现权限验证
VUE路由守卫_权限验证 引言: 本文在利用SpringBoot和Vue实现前后端分离一文的基础上追加的路由守卫:未登录时会限制访问某些页面(前台控制),与之前的Shiro不同: 文章目录 VUE路由 ...
- vue路由守卫有哪三种类型
vue中路由守卫一共有三种,分别为:全局路由守卫(全局前置守卫.全局后置守卫),组件内路由守卫,路由独享守卫(是在路由配置页面单独给路由配置的一个守卫). 路由守卫,也可以是路由拦截,我们可以通过路由 ...
- vue路由守卫beforeEach和afterEach
路由守卫 路由前置守卫beforeEach 路由在每次切换之前,都会到用一个函数:beforeEach 举个简单的栗子:如果当前跳转的路由路径是/home或者/about时才能查看页面,否则提示无权限 ...
- VUE 路由守卫 next() / next({ ...to, replace: true }) / next(‘/‘) 说明
最近因为next()遇到了不少问题,在这里记录一下 首先是路由守卫,是不是感觉简简单单 beforeEach((to, from, next) => {to // 要去的路由from // 当前 ...
- Vue路由守卫(导航守卫)
路由守卫包括全局守卫(beforeEach()).路由独享守卫(beforeEnter()).组件内守卫(beforeRouteEnter().beforeRouteLeave()) 1.全局守卫(b ...
- vue路由守卫的使用
使用路由守位我们需要使用vuex来存放全局的用户信息 ①存在全局用户信息 1.首先展示我的项目路径 2.store/index.js文件内容如下: 这里主要是引入一些文件,以及进行挂载 import ...
最新文章
- 剑指offer(19): 顺时针打印矩阵
- ultraEdit-32 PHP/HTML智能提示
- 面试常见问题_软件实施工程师面试中的常见问题都有哪些呢?
- 前端学习(3129):react-hello-react之回调形式的ref的次数问题
- 【OpenJ_Bailian - 2711 】 合唱队形(dp,枚举中间顶点)
- 【浏览器】浏览器模式与文档模式区别
- 开发Adobe AIR的原生扩展
- [转]memcached+magent实现memcached集群
- IP地址归属地那些事
- 三人抢答器逻辑电路图_数字电路3人抢答器实验报告.doc
- Setup Factory 安装程序的图标
- html5自动调用js函数,从html文件中的外部js文件调用Javascript函数
- “华为杯”山东理工大学第十一届ACM程序设计竞赛(正式赛)网络同步赛
- Words Reciting 2016.5.4
- python面向对象高级
- *7-2 CCF 2015-09-2 日期计算
- H5全新红包直通车网站源码 包含多款游戏已对接支付
- 如何从ip服务器所用系统,如何从0开始打造一个深度学习服务器?
- 记录一下首次调用wx公众号JSSDK心路
- 基于百度地图的出租车管理系统的设计与实现