免费发布信息
微信公众号

Vue路由守卫有哪些,怎么设置,有哪些使用场景?

   来源:黔优网责任编辑:优优  时间:2023-08-26 10:09:32 浏览量:29
导读:Vue 路由守卫是在 Vue Router 中提供的一种功能,它允许您在导航到某个路由前、路由变化时或导航离开某个路由时执行代码。Vue 路由守卫提供了以下几种类型:1.全局前置守卫router.beforeEach 在进入路由前执行的钩子

Vue 路由守卫是在 Vue Router 中提供的一种功能,它允许您在导航到某个路由前、路由变化时或导航离开某个路由时执行代码。Vue 路由守卫提供了以下几种类型:

1.全局前置守卫

router.beforeEach 在进入路由前执行的钩子函数,它会接收三个参数:to(要进入的路由对象)、from(当前导航正要离开的路由对象)和 next(必须调用该函数才能进入下一个钩子)。

2.全局解析守卫

router.beforeResolve 在路由解析之前执行的钩子函数,也会接收 to、from 和 next 参数。与 beforeEach 的区别在于,该守卫在全局守卫中被最后调用,因此它在所有路由组件内的守卫和异步路由组件被解析之后才被调用。

3.全局后置钩子

router.afterEach 在进入路由后执行的钩子函数,它不接收 next 函数,也不能改变导航。

4.路由独享守卫

beforeEnter 在路由配置中定义的钩子函数,它会在路由被激活之前调用。它和全局前置守卫的参数一样,但是只对该路由生效。

5.组件内的守卫

·beforeRouteEnter:在路由进入时异步加载组件前调用。

·beforeRouteUpdate:在当前路由改变,但是该组件被复用时调用(例如,从 /users/1 导航到 /users/2 时)。

·beforeRouteLeave:在离开当前路由时调用。

要设置路由守卫,可以在路由实例的配置对象中添加相应的属性。例如,设置全局前置守卫可以这样写:

const router = new VueRouter({
  routes: [...],
})

router.beforeEach((to, from, next) => {
  // ...
})

使用场景包括但不限于:

1.验证用户权限:在进入某些页面之前检查用户是否已登录或是否有权限访问该页面。

2.加载数据:在进入页面前加载必要的数据,例如在组件内使用 beforeRouteEnter 钩子函数异步获取数据。

3.路由重定向:在进入某些页面时需要重定向到另一个页面,例如在全局前置守卫中检查用户是否已登录并将未登录用户重定向到登录页面。

4.路由拦截:在某些情况下需要取消路由导航,例如在组件内使用 beforeRouteLeave 钩子函数防止用户误操作离开当前页面。

 
 
 
没用 0举报 收藏 0评论 0
免责声明:
黔优网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优网官方立场,请读者仅做参考。本文标题:Vue路由守卫有哪些,怎么设置,有哪些使用场景?,本文链接:https://qianu.com/news/250653.html,欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法信息,请您立即点此【投诉举报】并提供有效线索,也可以通过邮件(邮箱号:kefu@qianu.com)联系我们及时修正或删除。
 
 

 

 
推荐图文
推荐商业资讯