Vue导航守卫学习
📅 2026/7/7 5:29:30
👁️ 次浏览
Vue 导航守卫Navigation Guards学习文档适用版本Vue Router 3.xVue 2/ Vue Router 4.xVue 3语法略有差异一、什么是导航守卫导航守卫是 Vue Router 提供的路由跳转过程中的钩子函数主要用于登录鉴权 / 权限校验页面标题document.title设置数据预取阻止或重定向非法跳转埋点、离开确认等它们会在路由发生变化时按固定顺序依次触发。二、三大分类1. 全局守卫定义在router实例上constrouternewVueRouter({routes})// ① 前置守卫最常用登录校验主战场router.beforeEach((to,from,next){// to: 目标路由// from: 离开的路由// next: 放行函数必须调用否则路由停滞next()})// ② 解析守卫在组件内守卫和异步路由组件被解析之后触发router.beforeResolve((to,from,next){next()})// ③ 后置钩子导航已完成无 next常用于埋点、滚动复位router.afterEach((to,from){window.scrollTo(0,0)})2. 路由独享守卫定义在路由配置里{path:/settlement,component:Settlement,beforeEnter:(to,from,next){// 仅对当前路由生效next()}}3. 组件内守卫定义在组件选项里exportdefault{// ⚠️ 此时组件实例尚未创建拿不到 thisbeforeRouteEnter(to,from,next){next(vm{// 通过回调访问实例唯一的特例})},// 当前路由改变、但组件复用时触发如 /user/1 → /user/2beforeRouteUpdate(to,from,next){this.fetchData(to.params.id)next()},// 离开时触发this 可用常用于「未保存提示」beforeRouteLeave(to,from,next){if(this.formDirty!confirm(有未保存内容确定离开)){next(false)// 取消导航}else{next()}}}三、next()的用法调用方式含义next()放行继续跳转到tonext(false)中断回到当前页fromnext(/login)重定向到指定路径next(new Error(...))触发router.onErrornext(vm {...})仅beforeRouteEnter可用Vue Router 4 (Vue 3)中改为return语义return true / false / /login不再强制next。四、完整的导航解析顺序重点一次跳转会按以下顺序触发1. 导航被触发 2. 在失活组件里调用 beforeRouteLeave 3. 调用全局 beforeEach 4. 在重用组件里调用 beforeRouteUpdate 5. 调用路由配置里的 beforeEnter 6. 解析异步路由组件 7. 在被激活组件里调用 beforeRouteEnter 8. 调用全局 beforeResolve 9. 导航被确认 10. 调用全局 afterEach 11. 触发 DOM 更新 12. 调用 beforeRouteEnter 中 next 传入的回调记忆口诀「离开 → 全局前置 → 复用更新 → 独享 → 解析组件 → 进入 → 全局解析 → 确认 → 全局后置」。五、实战登录鉴权典型场景使用token标记需要登录的路由可在router/index.js这样实现import{getToken}from/utils/auth// 从 Cookie 读取 USER_TOKENconstWHITE_LIST[/login,/register,/403]router.beforeEach((to,from,next){// 1. 设置页面标题document.titleto.meta.tabTitle||资环链金智慧平台consthasTokengetToken()if(hasToken){if(to.path/login){next({path:/})// 已登录则拦截登录页}else{next()// 正常放行}}else{// 白名单放行其余统一跳登录并带上 redirectWHITE_LIST.includes(to.path)?next():next(/login?redirect${encodeURIComponent(to.fullPath)})}})六、常见坑位忘记调用next()→ 页面卡住、白屏最经典的错误。死循环beforeEach里重定向到自己如已登录又next(/login)需加条件分支。异步校验鉴权接口需await后再next()否则拿不到结果就放行了。beforeRouteEnter拿不到this必须用next(vm {...})回调。组件复用不触发created参数变化/detail/1→/detail/2只触发beforeRouteUpdate需在此重新请求数据或在router-view :key$route.fullPath强制重建。七、速查表守卫位置是否能取消跳转典型用途beforeEach全局✅登录/权限校验beforeResolve全局✅数据预加载完成后处理afterEach全局❌标题、滚动、埋点beforeEnter路由✅单路由鉴权beforeRouteEnter组件✅进入前数据校验beforeRouteUpdate组件✅动态参数变化beforeRouteLeave组件✅离开确认/防误操作八、Vue 3 补充Composition API在script setup中可用专用钩子script setup import { onBeforeRouteLeave, onBeforeRouteUpdate } from vue-router onBeforeRouteLeave((to, from) { const answer window.confirm(确定离开吗) if (!answer) return false // 取消导航 }) onBeforeRouteUpdate((to, from) { // 路由参数变化时触发 fetchData(to.params.id) }) /script注意Vue 3 中没有onBeforeRouteEnter进入前逻辑需通过beforeEnter路由独享守卫或在组件setup中直接处理。
站在2026年的节点回望,企业级AI智能体(Agent)已彻底告别了“炫技式”的概念验证期,正式迈入以“规模化落地”和“核心业务融合”为标志的深水区。市场数据印证了这一变革:从2024年的86亿元规模跃升至2025年的212亿元&a…
📅 2026/7/7 5:29:30
一、毕业设计题目
基于大数据的农业环境管理平台的设计与实现
二、研究背景与意义
现代农业发展逐步向数字化、智能化、精准化方向转型,农业环境是农作物生长、农业生产开展的核心基础,直接决定农作物产量、品质与农业生产效益。农业环境涵盖空气温湿度、…
📅 2026/7/7 5:29:30
1. 项目概述:为什么物理系统是Unity的“游戏规则制定者”干了这么多年Unity开发,我越来越觉得,物理系统这东西,它不像渲染那么直观,也不像UI那么显眼,但它绝对是决定你游戏“手感”和“世界感”的灵魂。你可…
📅 2026/7/7 5:29:30
1. ICM-42688-P与STM32F101ZG的黄金组合解析 在工业自动化和机器人控制领域,传感器与微控制器的选型直接决定了系统性能的上限。ICM-42688-P作为TDK InvenSense推出的6轴MEMS惯性测量单元(IMU),其核心优势在于集成了三轴陀螺仪和三轴加速度计,…
📅 2026/7/7 12:46:49
ARM Cortex-R8 实时处理器深度解析:架构设计与性能实测1. Cortex-R8 处理器架构概览ARM Cortex-R8 作为实时处理器领域的旗舰产品,基于成熟的 ARMv7-R 架构设计,在继承前代 R4/R5/R7 优势的同时,通过多项创新实现了性能突破。与常…
📅 2026/7/7 12:46:49
【Linux 运维必备】打通网络任督二脉:现代 Linux 网络管理利器 nmcli 全面精通指南
在过去,很多老程序员或者运维在重置 Linux IP 地址时,习惯去 /etc/sysconfig/network-scripts/ 目录下疯狂改动黑白的文本配置文件。不仅格式难记࿰…
📅 2026/7/7 12:46:49
1. STC3115电池监控芯片的核心特性解析STC3115是意法半导体推出的一款专为单节锂离子/聚合物电池设计的燃料计量芯片,它在电池管理系统中扮演着关键角色。这款芯片最突出的特点是采用了混合计量技术,结合了电压测量和库仑计数的双重优势。在实际项目中&a…
📅 2026/7/7 12:46:49
如何在嵌入式系统中轻松实现USB功能:CherryUSB完整指南 【免费下载链接】CherryUSB CherryUSB is a tiny and beautiful, high performance and portable USB host and device stack for embedded system with USB IP 项目地址: https://gitcode.com/gh_mirrors/c…
📅 2026/7/7 12:46:49
AI 刷题提示评估:提示越少,越能看出真实能力
一、刷题系统最容易把提示做成答案投喂
AI 辅助刷题系统通常会提供提示。用户卡住了,系统给一点方向,体验很好。但提示如果太直接,就会变成答案投喂。用户看似做出来了&…
📅 2026/7/7 12:44:48
CentOS SSH连接故障排查:从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时,突然遭遇"Connection refused"或"Connection timed out"的错误提示,这种经历对任何运维人员或开发者来…
📅 2026/7/7 0:00:45
B站评论删除API逆向工程实战:关键参数解析与自动化操作指南1. 理解B站评论删除机制的核心逻辑在视频平台内容管理中,评论删除功能涉及复杂的权限验证和数据交互流程。B站的评论删除API采用了一套基于Web安全标准的防护机制,主要依赖三个关键参…
📅 2026/7/7 0:00:45
1. 项目概述:为什么Java安全是红蓝对抗的焦点在当前的网络安全攻防演练,也就是我们常说的红蓝对抗中,Java应用一直是双方交锋的核心战场。这不仅仅是因为Java在企业级应用、金融系统和大型互联网后台中无处不在,更因为其技术栈的复…
📅 2026/7/7 0:00:45
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/7 12:08:23
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/7 9:08:28
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/7 6:33:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/7 9:08:31
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/7 9:08:30
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/7 4:32:18