虽互不曾谋面,但希望能和您成为笔尖下的朋友
以读书,技术,生活为主,偶尔撒点鸡汤
不作,不敷衍,意在真诚吐露,用心分享
点击左上方,可关注本刊
标星公众号(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.push
和this.$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.push
或this.$router.replace
实现
前者具备历史的前进和后退,默认就是这种方式,而后者是替换当前的路由
非常简单,在平时的Vue项目开发中,声明式的导航使用很频繁,但是对于编程式的导航相对而言,没那么熟悉
虽然也知道怎么使用,但是往往在面试时,提到编程式导航,对于有的同学有些懵逼
可能不知不觉就已经使用了的,只是对于它的叫法有些陌生,两种方式还是都要知道的,对应着不同的应用场景
点个在看你最好看
点击下方阅读原文可了解更多