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

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

ruisui885个月前 (01-12)技术分析40

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

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

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/220.html

标签: vue路由传值
分享给朋友:

“Vue Router 4 路由操作 - 路由导航” 的相关文章

Solid State Logic 发布低保真数字失真插件 Digicrush

Solid State Logic 宣布推出低保真数字失真插件 Digicrush ,他们最新的创意工具具有经典数字失真的粗糙、低保真特性,完美模拟早期数字音频的衰减和伪影。Digicrush 充满怀旧气息,深受经典数字采样器和效果器的影响,具有内置抖动、可调比特深度和采样率降低功能,是为音轨添加复...

双子座应用程序推出模型切换器以在Android上访问2.0

#头条精品计划# 快速导读谷歌推出了Gemini 2.0 Flash实验版,现已在其安卓应用中可用,之前仅在gemini.google.com网站上提供。新版本的15.50包含模型切换器,用户可以在设置中选择不同模型,包括1.5 Pro、1.5 Flash和2.0 Flash实验版。谷歌提醒,2.0...

uni-app基于vue开发小程序与标准vue开发新增点

1、路由跳转传参uni.navigateTo({ url: `/pages/transition/spreadTextAction?t=${this.options.t}&rt=${this.options.rt}&l=${this.options.l}`});uni.navigateBack({...

复盘总结:从0到1,企业微信小程序开发11步走

作者复盘了从域名准备到内容发布的整个过程,这是项目团队一起回忆整个产品总结出来的经验,值得我们学习,与大家分享。去年接手了两个微信小程序的开发项目,作为一位产品人员,在和开发供应商进行磨合的时候也遇到了许许多多的问题。如今项目已进入收尾阶段,之前也参考了许多其他做微信小程序的同行同事的经验,再做一次...

微信企业号首款永久免费应用问世

7月14日,微信企业号移动办公应用领跑者——办公逸宣布:其所研发的微信办公应用将永久免费,企事业单位只要拥有微信企业号都可以免费安装办公逸各项应用,此举标志着微信办公免费时代现已到来!据悉,办公逸(www.bangongyi.com)现已推出四大微信办公套件,分别为:移动办公管理套件、客户关系管理套...

突发!微信全面封禁字节跳动旗下办公产品飞书

日前,字节跳动旗下办公套件飞书发布官方公告称,飞书相关域名无故被微信全面封禁,并且被单方面关闭微信分享API接口。和讯科技对此进行了尝试,发现“feishu”相关域名链接在微信内均无法打开,显示“如需浏览,请长按网址复制后使用浏览器访问”,而在飞书内也无法直接跳转微信分享,显示“未获得分享权限”。据...