网站首页 > 技术文章 正文
在学习其他路由知识之前,先来看一个最基础的知识点 - 路由地址。
路由最基本的操作是从一个地址跳转到另外一个地址。
如果每一个路由地址相当于地图中某个点的坐标,那么想要去某个点,就得先知道初始点坐标以及目标点坐标,然后规划路线,最后到达目的地,至于怎么样到达我们暂不讨论,后续会一一说明。
路由跳转也是同样的道理。
通过路由地址信息,我们可以获取到路由最基本的路由路径、路由传递的参数、hash等,方便我们实际的操作使用。
路由地址中的属性请自行参考官方文档中API部分的 RouteLocationNormalized
当前路由地址获取
使用useRoute获取当前的路由地址
import { useRoute } from 'vue-router'
// 获取到当前路由的标准的路由地址
const route = useRoute()
console.log(route)
通过router实例的currentRoute属性获取当前的路由地址
import { useRouter } from 'vue-router'
const router = useRouter()
// 获取当前的路由地址
// 类型为 Ref<RouteLocationNormalized>
router.currentRoute
用户级的路由地址
通常把通过router.push或者router.replace跳转时配置的路由地址称为用户级路由地址
用户级路由地址通常也被当做目标路由地址
// 保存用户级路由地址
let addr = ''
// 1. path?query#hash 字符串路由地址跳转
addr = '/home/route-addr?name=123#456'
// 2. path + query + hash组合成路由地址跳转
addr = {
path: '/home/route-addr',
query: {
name: 123
},
hash: '#456
}
// 3. name + query + hash组合成路由地址跳转
addr = {
name: 'home.route-addr',
query: {
name: 123
},
hash: '#456
}
// 以上路由地址为等价的三种方式,解析之后,没有区别
// 4. name + params + hash模式
// 注意:在name + params + hash模式中,需要注意当前的vue-router版本
// 如果当前的vue-router版本为4.0.x,则直接使用即可
addr = {
name: 'home.route-addr',
params: {
name: 123
},
hash: '#456
}
// 如果当前的vue-router版本为4.1.x及以上,则需要做如下配置
// 在router/index.js文件
// 配置参数通配符:name
const routes = [
// 其他路由记录...
// ...
{
name: 'home.route-add',
path: '/home/route-add/:name',
component: () => import('@/views/route/RouteAdd.vue')
}
]
// 5. replace替换路由地址
addr = {
name: 'home.route-addr',
query: {
name: 'home.route-addr',
},
hash: '#route',
replace: true
}
//路由跳转
// 注意,在第5种情况下,router.push等价于router.replace
// 注意,addr为用户级路由地址
router.push(addr)
导航守卫拦截到的路由地址
路由导航守卫中的to、from均为标准路由地址
注意:前置导航守卫拦截到的地址为通过用户级路由地址转换过来的标准路由地址
// 以前置导航守卫为例,其他导航守卫的to、from和前置导航守卫的一致
// router/index.js文件
// 省略其他代码......
router.beforeEach((to, from) => {
// to 将要去的目标路由地址
// from 将要离开的当前路由地址
// 注意,前置导航守卫拦截到的是所有的路由的跳转操作
// 他会在路由跳转之前执行
console.log(to)
console.log(from)
})
从 / 到 /home/route-addr 路由中的to、from如下所示
猜你喜欢
- 2024-09-30 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)
- 2024-09-30 Vue Router 4 路由操作 - 路由导航
- 2024-09-30 为什么用vue.js,为什么前端开发46%的人都在用?
- 2024-09-30 vue-router 基础:4类路由跳转示例
- 2024-09-30 Vue Router 4 动态添加路由详解 vue router动态路由配置
- 2024-09-30 Vue进阶篇-Vue Router官方路由管理器
- 2024-09-30 循序渐进Vue+Element前端应用开发(3)—动态菜单和路由的关联处理
- 2024-09-30 哈希方式实现前端路由,核心是监听哈希事件hashchange
- 2024-09-30 前端开发框架VUE之路由vue-router
- 2024-09-30 前端开发:带你深入理解路由两种模式
你 发表评论:
欢迎- 最近发表
-
- 前端流行框架Vue3教程:13. 组件传递数据_Props
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- JAVA和JavaScript到底是什么关系?是亲戚吗?
- Java和js有什么区别?(java和javascript的区别和联系)
- 东方标准|Web和Java的区别,如何选择这两个专业
- 前端面试题-JS 中如何实现大对象深度对比
- 360前端一面~面试题解析(360前端笔试)
- 加班秃头别慌!1 道 Vue 面试题,快速解锁大厂 offer 通关密码
- 焦虑深夜刷题!5 道高频 React 面试题,吃透 offer 稳了
- 2025Web前端面试题大全(整理版)面试题附答案详解,最全面详细
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)