当前位置:首页 > 技术文章 > 正文内容

Vue Router 4 路由操作 - 路由导航

zonemu3个月前 (07-12)技术文章39

路由导航分为 声明式导航编程式导航

通过 <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会非常熟悉,如果有条件的可以去自己学习一下。

相关文章

细数5款国外热门Linux发行版(linux发行版排名网站)

Linux系统已经与我们的生活息息相关,当你用Android手机浏览这篇文章时,你就已经在使用Linux系统。当然作为编程开发最热门的系统,他还有很多专注于开发使用的版本。Fedora热门入门推荐,一...

html5你能把太阳系动态做出来,但是你能把月亮也做出来吗?

需要源码请评论后加前端学习群470593776课题:HTML5加原生js打造一个炫酷动态的太阳系简介:首先对于太阳系各大星球的运转关系,速度等资料,不然弄出来也是被喷的下场, 还有对于逻辑思维,算法的...

详解HTML5培训课程行业标准(html5课程总结)

需要HTML5培训必须先了解HTML5前景,没前景的职业,我们绝对不去入坑,这是正常人的思维。因此学习HTML5还的要多了解一些,目前HTML5技术已经日趋成熟,从国内热潮来看很多企业已开始使用,所以...

HTML5与APP的抉择(h5与app的区别)

同为当下炙手可热的技术,围绕APP和HTML5难免少不了各种争辩。而在“互联网+”时代,许多面临转型的传统企业,也在选择转型工具时,陷入了HTML5或APP的纠结抉择之中……到底该选择HTML5还是A...

如何使用HTML5实现多个元素的拖放功能

通过使用HTML5的拖放功能我们可以拖放HTML页面元素。在上一篇文章中,我们介绍了有关于可以拖放单个元素的代码。在接下来的这篇文章中,我们将来介绍关于允许拖放多个元素的代码。话不多说,我们直接看示例...

Excel中的FILTER函数详细介绍及使用示例

在Excel中处理大量数据时,经常需要根据特定条件筛选出符合条件的数据行或列。这正是Excel的FILTER函数发挥作用的地方。FILTER函数是Excel中一个非常强大的工具,它可以基于一个或多个条...