网站首页 > 技术文章 正文
路由导航分为 声明式导航 和 编程式导航。
通过 <router-link to="..."> 标签跳转的方式为声明式导航。
通过 路由实例对象(router.push(...))跳转的为编程式导航。
导航到不同的位置
想要导航到不同的URL,使用 router.push 方法。该方法会向 浏览器的历史记录栈 新增一条记录。当点击浏览器的回退按钮时,会退回到之前的URL。
在声明式导航中,我们使用<router-link>标签进项跳转,类似于HTML中的a标签。需要注意的是,当点击<router-link>标签时,内部调用的依然是router.push方法进行跳转。
不管是<router-link>标签的 to 属性,还是router实例对象的 push 方法,都有相同的以下三种类型的值:
path路由地址字符串
// 声明式
<router-link to="/home"></router-link>
// 编程式
router.push('/home')
包含path的路由地址对象
// 声明式
<router-link :to="{ path: '/home' }"></router-link>
// 编程式
router.push({ path: '/home' })
包含name的路由地址对象
// 声明式
<router-link :to="{ name: 'Home' }"></router-link>
// 编程式
router.push({ name: 'Home' })
替换当前位置
跟 router.push 有所不同的是,虽然都是导航到浏览器的某个历史记录,但 router.replace 会替换当前浏览器历史记录栈中的对应的记录,而 router.push 是新增。
// router.replace与router.push使用方式类似
// 声明式
<router-link :to="{ name: 'Home' }" replace></router-link>
// 编程式
router.replace({ name: 'Home' })
在历史记录中随意跳转
使用router.go可以在浏览器的历史记录栈中随意切换,不会新增历史记录,也不会替换当前历史记录。
// 此方式只适用于编程式导航
// n 为浏览器历史记录栈长度范围内的数字
router.go(n)
router.go(1) // 前进
router.go(-1) // 后退
router.go(2) // 前进两条记录
router.go(100) // 如果历史记录没有那么多条数,则静默失败
返回之前的历史记录
使用router.back返回跳转之前的历史记录,相当于 router.go(-1),需要注意的是,在使用 router.replace 跳转方式时,router.back 不能返回到之前的历史记录,因为已经被替换掉了。
// 此方式只适用于编程式导航
router.back()
在历史记录中前进
使用 router.forward 在历史记录中前进,相当于 router.go(1)
// 此方式只适用于编程式导航
router.forward()
一些额外的扩展知识
Vue Router模仿了 Browser History APIs,如果有这方面的使用经验,则使用Vue Router会非常熟悉,如果有条件的可以去自己学习一下。
猜你喜欢
- 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 Router 4 路由地址详解 vue router路由配置
- 2024-09-30 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)