什么是导航守卫与应用场景

简介: 什么是导航守卫与应用场景

如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。这里有很多方式植入路由导航中:全局的,单个路由独享的,或者组件级的。

全局前置守卫

const router = createRouter({ ... })
router.beforeEach((to, from) => {
  // ...
  // 返回 false 以取消导航
  return false
})

当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于等待中。

每个守卫方法接收两个参数:

可以返回的值如下:

  • false: 取消当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。
  • 一个路由地址: 通过一个路由地址跳转到一个不同的地址,就像你调用 router.push() 一样,你可以设置诸如 replace: true 或 name: 'home' 之类的配置。当前的导航被中断,然后进行一个新的导航,就和 from 一样。
router.beforeEach(async (to, from) => {
   if (
     // 检查用户是否已登录
     !isAuthenticated &&
     // ❗️ 避免无限重定向
     to.name !== 'Login'
   ) {
     // 将用户重定向到登录页面
     return { name: 'Login' }
   }
 })

全局后置守卫

可以使用 router.afterEach() 注册一个全局后置守卫,和其他守卫(包括组单个路由独享的守卫以及组件中的守卫)不同的是,全局后置守卫不会接受 next() 函数,也不会改变导航本身;

router.afterEach((to, from) => { // 函数处理代码 })

全局解析守卫

2.5.0 新增。在2.5.0+你可以使用 router.beforeResolve() 注册一个全局解析守卫。

   

   应用场景

Vue Router 提供的导航守卫主要用来通过跳转或者取消跳转的方式来守卫导航;一个简单的例子:从一个界面跳转到另一个新的界面中,如果需要满足特定的条件才能发生跳转,这时候就需要用到导航守卫(钩子函数),比如:从商品界面需要跳转到购物车界面,在这个过程中需要用户的登录状态,这样就可以在特定的导航钩子函数中进行判断,跳转还是取消跳转;主要用于登录拦截判断。


相关文章
|
2月前
|
数据安全/隐私保护
导航守卫有哪三种?
导航守卫有哪三种?
27 0
|
2月前
导航守卫+vuex学习
直白的说,导航守卫就是路由跳转过程中的一些钩子函数,这些函数能让你在跳转过程中操作一些其他的事儿的时机,这就是导航守卫。 比如最常见的登录权限验证,当用户满足条件时,才让其进入导航,否则就取消跳转,并跳到登录页面让其登录。此时可以使用路由导航来实现。 导航守卫有三种:全局的, 单个路由独享的, 组件级的。
|
2月前
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
86 0
|
1月前
|
JavaScript 数据安全/隐私保护 开发者
导航守卫有哪三种?分别有什么作用
导航守卫有哪三种?分别有什么作用
6 0
|
8月前
导航守卫的使用
导航守卫的使用
26 0
|
2月前
|
JavaScript 数据安全/隐私保护 UED
导航守卫(全局,组件,路由独享)都有什么作用导航守卫在 Vue Router 中扮演着重要的角色,不同类型的导航守卫有着不同的作用:1. **全局导航守卫**: - **作用**:
导航守卫(全局,组件,路由独享)都有什么作用导航守卫在 Vue Router 中扮演着重要的角色,不同类型的导航守卫有着不同的作用:1. **全局导航守卫**: - **作用**:
36 0
|
2月前
今日讲讲导航守卫
今日讲讲导航守卫
13 0
|
12月前
|
存储 JavaScript
vuex和导航守卫
vuex和导航守卫
|
12月前
|
资源调度 JavaScript 搜索推荐
Vue Router:打造单页面应用(SPA)中流畅的导航和路由功能(上)
Vue Router:打造单页面应用(SPA)中流畅的导航和路由功能
|
12月前
|
前端开发 JavaScript UED
Vue Router:打造单页面应用(SPA)中流畅的导航和路由功能(中)
Vue Router:打造单页面应用(SPA)中流畅的导航和路由功能

热门文章

最新文章