路由守卫

生活中的路由:设备和ip的映射关系;

node.js路由:接口和服务的 映射关系;

(前端)Vue中的路由:路径和组件的映射关系。

路由守卫的使用场景?

首先,如何给路由添加一个权限判断呢?例如,用户在登录的状态下就能去到某页面,但是未登录则给你弹出一个未登录的提示。

路由守卫的目标是实现这样一个权限判断,在路由跳转之前,会触发一个函数.

//语法:router.beforeEach((to,from,next) => {}let isLogin = false; //未登录router.beforeEach((to,from,next) => {

//路由跳转“之前”先执行这里,决定是否跳转

if (to.path === '/yourLogin' && isLogin === false) {

alert("请登录”)

next(false) //阻止路由跳转

}else {

next() //正常放行

}

})

参数1(to):要跳转到的路由(路由对象信息)目标


参数2(from):从哪里跳转的路由 (路由对象信息)来源


参数3 (next):函数体  必须要next()才会让路由正常地跳转和切换,next(false)在原地停留,next(“强制修改到另一个路由路径上”


注意:如果不调用next,那么页面会留在原地


全局路由在真正跳转之前,会执行一次beforeEach函数,next调用则跳转,也可以强制修改要跳转的路由。


什么是路由守卫呢?


如果在面试中被问到了这个,比较完美的答案如下:


路由守卫又称导航守卫,指是路由跳转前、中、后过程中的一些钩子函数。官方解释是vue-router提供的导航守卫,要通过跳转或取消的方式来守卫导航。路由守卫分为三种,全局路由、组件内路由,路由独享。


全局路由钩子函数有:beforeEach、beforeResolve、afterEach(参数中没有next)


组件内路由的钩子函数有:beforeRouterEnter、beforeRouteUpdate、beforeRouteLeave


路由独享的钩子函数有:beforeEnter

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容