Vue 路由导航守卫
(1) router.beforeEach
beforeEach((to, from, next) => {})
接收三个参数,在路由切换成功之前调用
-
to
将要进入的目标路由,要去哪里 -
from
将要离开的路由,从哪里来 -
next
跳转路由,next(false)
中断导航
// router -> index.js router.beforeEach( (to, from, next) => { // 判断你要访问的路由页面路径是否是'login',若是,则放行 if(to.path == '/login') return next(); // 若不是,则跳转到'login' next('/login') })
(2) router.afterEach
afterEach((to, from) => {})
接收两个参数,在路由切换成功之后调用
-
to
将要进入的目标路由,要去哪里 -
from
将要离开的路由,从哪里来
// router -> index.js router.afterEach( (to, from) => { // 操作 })
二:组件内守卫
(1) beforeRouteEnter
beforeRouteEnter((to, from, next) => {})
接收三个参数,到达这个组件之前调用
-
to
将要进入的目标路由,要去哪里 -
from
将要离开的路由,从哪里来 -
next
访问组件实例、放行
export default { data(){ return{ name:"Arya" } }, beforeRouteEnter(to,from,next){ next(vm=>{ // vm相当于组件中的this alert("hello" + vm.name); }) } }
(2) beforeRouteLeave
beforeRouteEnter((to, from, next) => {})
接收三个参数,离开这个组件时调用
离开这个组件时,判断是否确认离开。确认执行next();取消执行next(false),留在当前页面。
beforeRouteLeave(to,from,next){ if(confirm("确定离开此页面吗?") == true){ next(); }else{ next(false); } }
三:路由独享守卫
beforeEnter
用法与全局守卫一致。只是将其写进其中一个路由对象中,只在这个路由下起作用
作者:my-wl
出处:https://www.cnblogs.com/my-wl/p/14485569.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)