网站首页 > 技术文章 正文
路由导航分为 声明式导航 和 编程式导航。
通过 <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会非常熟悉,如果有条件的可以去自己学习一下。
猜你喜欢
- 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类路由跳转示例
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)