网站首页 > 技术文章 正文
在学习其他路由知识之前,先来看一个最基础的知识点 - 路由地址。
路由最基本的操作是从一个地址跳转到另外一个地址。
如果每一个路由地址相当于地图中某个点的坐标,那么想要去某个点,就得先知道初始点坐标以及目标点坐标,然后规划路线,最后到达目的地,至于怎么样到达我们暂不讨论,后续会一一说明。
路由跳转也是同样的道理。
通过路由地址信息,我们可以获取到路由最基本的路由路径、路由传递的参数、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如下所示
猜你喜欢
- 2025-06-10 下一代 Vue3 Devtools 正式开源!(vue3正式版发布)
- 2025-06-10 HyperExpress 来了,老牌 Express 要下线?
- 2025-06-10 大厂面试必问:如何设计一个扛高并发的系统?
- 2025-06-10 初学vue3, 全是黑盒子,vue3知识点汇总
- 2025-06-10 62K Star!Syncthing,打造你的专属局域网文件同步利器!
- 2025-06-10 Web 前端思考题:如何获取往返数据包的 TTL
- 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类路由跳转示例
你 发表评论:
欢迎- 06-24发现一款开源宝藏级工作流低代码快速开发平台
- 06-24程序员危险了,这是一个 无代码平台+AI+code做项目的案例
- 06-24一款全新的工作流,低代码快速开发平台
- 06-24如何用好AI,改造自己的设计工作流?
- 06-24濮阳网站开发(濮阳网站建设)
- 06-24AI 如何重塑前端开发,我们该如何适应
- 06-24应届生靠这个Java简历模板拿下了5个offer
- 06-24服务端性能测试实战3-性能测试脚本开发
- 562℃Oracle分析函数之Lag和Lead()使用
- 560℃几个Oracle空值处理函数 oracle处理null值的函数
- 547℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 544℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 540℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 535℃【数据统计分析】详解Oracle分组函数之CUBE
- 524℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 515℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)