当前位置:家常菜>百科>科技>正文

vue路由跳转

人气:143 ℃/2024-09-18 22:55:17

vue路由跳转的方法是什么呢?不知道的小伙伴来看看小编今天的分享吧!

方法一:router-link (声明式路由)

1、不带参数

<router-link :to="{name:'home'}"> 

<router-link :to="{path:'/home'}"> //name,path都行, 建议用name  

// 注意:router-link中链接如果是'/'开始就是从根路由开始,如果开始不带'/',则从当前路由开始。

2、带参数

<router-link :to="{name:'home', params: {id:1}}">  

// params传参数 (类似post)

// 路由配置 path: "/home/:id" 或者 path: "/home:id" 

// 不配置path ,第一次可请求,刷新页面id会消失

// 配置path,刷新页面id会保留

// html 取参  $route.params.id

// script 取参  this.$route.params.id

<router-link :to="{name:'home', query: {id:1}}"> 

方法二:router.push(编程式路由)

// 字符串

router.push('home')

// 对象

router.push({ path: 'home' })

// 命名的路由

router.push({ name: 'user', params: { userId: '123' }})

// 带查询参数,变成 /register?plan=private

router.push({ path: 'register', query: { plan: 'private' }})

注意:如果提供了 path,params 会被忽略,上述例子中的 query 并不属于这种情况。取而代之的是下面例子的做法,你需要提供路由的 name 或手写完整的带有参数的 path:

const userId = '123'

router.push({ name: 'user', params: { userId }}) // -> /user/123

router.push({ path: `/user/${userId}` }) // -> /user/123

// 这里的 params 不生效

router.push({ path: '/user', params: { userId }}) // -> /user

方法三:this.$router.push() (函数里面调用)

1、不带参数

this.$router.push('/home')

this.$router.push({name:'home'})

this.$router.push({path:'/home'})

2、query传参 

this.$router.push({name:'home',query: {id:'1'}})

this.$router.push({path:'/home',query: {id:'1'}})

// html 取参  $route.query.id

// script 取参  this.$route.query.id

3、params传参

this.$router.push({name:'home',params: {id:'1'}})  // 只能用 name

// 路由配置 path: "/home/:id" 或者 path: "/home:id" ,

// 不配置path ,第一次可请求,刷新页面id会消失

// 配置path,刷新页面id会保留

// html 取参  $route.params.id

// script 取参  this.$route.params.id

4、query和params区别

query类似 get, 跳转之后页面 url后面会拼接参数,类似?id=1, 非重要性的可以这样传, 密码之类还是用params刷新页面id还在

params类似 post, 跳转之后页面 url后面不会拼接参数 , 但是刷新页面id会消失

方法四:this.$router.replace() (用法同上,push)

方法五:this.$router.go(n) ()

this.$router.go(n)

向前或者向后跳转n个页面,n可为正整数或负整数

ps : 区别

this.$router.push

跳转到指定url路径,并想history栈中添加一个记录,点击后退会返回到上一个页面

this.$router.replace

跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面 (就是直接替换了当前页面)

this.$router.go(n)

向前或者向后跳转n个页面,n可为正整数或负整数

注意:

获取路由上面的参数,用的是$route,后面没有r

params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。

params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失,

  • 车子落水后车门打不开怎么办

    如果汽车不小心落水后车门由于压力无法打开,需要采用尖锐的物品将汽车的车窗玻璃砸开,一般可以选择座位的头枕作为工具,砸向汽车的车窗玻璃上进行逃生。如果在在下雨天驾驶车辆,需要注意...

    问答查看全文>>
  • 涡轮增压保养用什么机油好?

    涡轮增压对机油的要求较高,建议用全合成机油:1、因为全合成机油的润滑效果相比其他类型的机油要好。可以减少发动机内部部件的磨损,延长发动机的时候寿命;2、全合成机油是机油中的高等...

    问答查看全文>>
  • 快手小店怎么添加颜色尺码

    快手小店添加颜色尺码一共可以分为5步,具体操作方法如下:1、进入软件打开进入手机快手;2、进入更多页面点击左上角的头像选择更多;3、进入客服页面在页面里点击快手客服;4、输入如...

    科技查看全文>>
  • 汝窑茶具适合泡什么茶

    汝窑茶具适合泡什么茶?汝窑的外形看起来大方又经典,色泽也非常独特,汝窑还能随着光的变化而发生变化哦。那么汝窑茶具适合泡什么茶呢?其实汝窑茶具对于泡茶方面并没有太多讲究,泡什么茶...

    茶叶查看全文>>
  • 柴油面包车哪个牌子好?

    要想拉货,一是看动力,二是看底盘,三是看空间:1、不知道您是拉什么货,多重?如果很重的话,建议买大排量的车型,反而会比小排量更省油;2、货物重,对车的地盘要求比较高,加上跑乡下...

    问答查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版