Vue Router 是Vue.js的官方路由。它与Vue.js 核心深度集成,让用Vue.js构建单页应用变得轻而易举。功能包括:
| - 嵌套路由映射 |
| - 动态路由选择 |
| - 模块化、基于组件的路由配置 |
| - 路由参数、查询、通配符 |
| - 展示由Vue.js的过度系统提供的过渡效果 |
| - 细致的导航控制 |
| - 自动激活CSS类的链接 |
| - HTML5 history 模式或 hash 模式 |
| - 可定制的滚动行为 |
| - URL 的正确编码 |
router-link:
| 使用一个自定义组件 router-link 来创建链接。这使得 Vue Router 可以在不重新加载页面的情况下更改 URL,处理 URL 的生成以及编码。 |
router-view:
| router-view 将显示与 url 对应的组件。可以把它放在任何地方,以适应布局。 |
全局前置守卫:beforeEach
当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫resolve之前一直处于等待中。
每个守卫方法接收两个参数:
· to: 即将要进入的目标;
· from:当前导航正要离开的路由。
可以返回的值如下:
· false: 取消当前的导航。如果浏览器的URL改变了,那么URL地址会重置到from路由对应的地址。
· 一个路由地址:
全局解析守卫:beforeResolve
全局后置钩子:afterEach
路由独享守卫:beforeEnter
组件内的守卫:beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave
完整的导航解析流程:
| 1. 导航被触发; |
| 2. 在失活的组件里调用 beforeRouteLeave 守卫; |
| 3. 调用全局的 beforeEach 守卫; |
| 4. 在重用的组件里调用 beforeRouteUpdate 守卫(2.2+); |
| 5. 在路由配置里调用 beforeEnter ; |
| 6. 解析异步路由组件; |
| 7. 在被激活的组件里调用 beforeRouteEnter ; |
| 8. 调用全局的 beforeResolve 守卫(2.5+); |
| 9. 导航被确认; |
| 10. 调用全局的 afterEach 钩子; |
| 11. 触发 DOM 更新; |
| 12. 调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构