VueJs中的编程式导航VS声明式导航

虽互不曾谋面,但希望能和您成为笔尖下的朋友

以读书,技术,生活为主,偶尔撒点鸡汤

不作,不敷衍,意在真诚吐露,用心分享

点击左上方,可关注本刊

标星公众号(ID:itclanCoder)

如果不知道如何操作

点击这里,标星不迷路

前言

vue当中实现链接的跳转,通过使用的是vue提供的router-link标签,并结合to属性去跳转,这种可直接在模板中进行使用

我们称为它是声明式的导航,但有时,我们项目里,写的不是router-link而是一个button组件,或是需要有一定的异步逻辑处理,然后在跳转

那么这个时候,router-link就无法满足实现了的,这时候编程式导航就可以

它等价于router-link,是vue提供的一种通过调用vue实例API的方法实现的,它的概念名字比较抽象,你可以把编程式导航理解成,它是通过js的方式去实现类似router-link的功能

不借助router-link的方式实现链接跳转,而是通过Vue实例的方法实现跳转

使路由的跳转更加灵活,更自由

具体的实现

其实,编程式导航非常简单,是使用Vue的两个实例方法,如this.$router.pushthis.$router.replace实现的

01

this.$router.push(配置参数)

点击路由链接,可以返回到当前的路由界面,它是一种队列方式呈现的,先进先出,如下代码所示

this.$router.push({
    name: '路由规则配置的名字'  // 定义在路由规则的name名字,保持一致,而非定义组件时的name名字,
    params: {                // 如果是query形式,那么这里就是query
        id:'11',
        name: 'itclan.cn'
    }
})


02

this.$router.replace(配置参数)

用新的路由去替换当前的路由,也就是没有历史记录,前进和后退,没法返回到当前路由界面,它是以栈的方式呈现的,先进后出

this.$router.replace({
    name: '路由规则配置的名字',
    params: {
        id:'22',
        name: 'itclanCoder'
    }
})


03

this.$router.forward

this.$router.forward()表示前进


04

this.$router.back

this.$router.back() // 表示后退


05

this.$router.go

this.$router.go(正数/负数),若为正数,则表示前进几步,若为负数,则后退几步

总结

总得来说,在vue当中实现路由的跳转,有两种方式,一种是声明式router-link的方式,另一种就是通过vue的实例方法this.$router.pushthis.$router.replace实现

前者具备历史的前进和后退,默认就是这种方式,而后者是替换当前的路由

非常简单,在平时的Vue项目开发中,声明式的导航使用很频繁,但是对于编程式的导航相对而言,没那么熟悉

虽然也知道怎么使用,但是往往在面试时,提到编程式导航,对于有的同学有些懵逼

可能不知不觉就已经使用了的,只是对于它的叫法有些陌生,两种方式还是都要知道的,对应着不同的应用场景

vuejs中路由的传参以及路由props配置

2022-07-17

cf4e090d848eb12b631269f2931f100f.jpeg

暖暖聊天恋爱对话(套餐卡)

2022-07-13

789258c88069e68fbed422cf6aaeaa55.jpeg

第6节-服务器,ip,域名三者的一个关系

2022-07-09

cfafeae1a28d9c448f0a0172aef4047c.jpeg

第5节-如何选择一个有意义价值的域名

2022-07-09

bb2ad04ab9bb7443313f0892a5ef2346.jpeg

第4节-建设一个什么样的网站

2022-07-09

d6201f53cdd5dd25473fd952fc451bde.jpeg

第3节-怎么去做网站-选择最合适的技术

2022-07-09

65df75e231783061a06a594fa6bd2a3b.jpeg

第2节-为什么有必要去建站开发应用

2022-07-09

97b563f866a72eaa500c9ca2c04ec335.jpeg

第1节-从0到1快速建设网站-最终实现商业化盈利

2022-07-09

7258aef813d0ddde2d1f0d413ec7aae2.jpeg

点个在看你最好看

7cc2542019e754cf7d2315ba8baede1c.png

dd4f6da52d47af5faf1c63c89d652e44.png

c7751d4ea685e3899a8bed8538b6fc12.png

点击下方阅读原文可了解更多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值