vue路由跳转
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、货物重,对车的地盘要求比较高,加上跑乡下...
问答查看全文>>
推荐
- 1凯迪拉克XT47油箱多少升101
- 2驾校教练证怎么考需要什么条件吗311
- 3一人单身久了的句子356
- 4php初中高级工程师的区别110
- 5车辆完税证明怎么开?385
- 6自吸发动机可以改涡轮增压吗421
- 7车牌螺丝如何申请?312
- 82022年大年初一发的朋友圈说说115