vue实战-路由传递参数

vue实战-路由传递参数

前言问题

1)路由跳转有几种方式?

1:声明式导航:router-link(务必要带有to属性),可以实现路由的跳转
2:编程式导航:利用的是组件实例的$router.push | replace方法,可以实现路由的跳转。(还可以写一些自己的业务)

2)路由传参,参数有几种写法?

1:params参数:属于路径当中的一部分,需要注意,在配置路由的时候,需要占位
2:query参数:不属于路径当中的一部分,类似于ajax中的queryString /home?k=v&kv=,不需要占位

1.路由传递参数(搜索框)

1)首先在input处设置双向绑定,并定义一个数据接收

在这里插入图片描述
在这里插入图片描述
设置一个接收参数是为了能在回调函数中使用并传到search页面。

2)使用编程式导航方法跳转并传递参数

在回调函数内使用编程式导航,携带params和query参数,使用对象传递法(常用)。
**若要传递params参数,对象内的属性不能是path而应是name,**所以需要在router那设置Search组件路由跳转的name。
在这里插入图片描述
对象法传参:

 this.$router.push({
   name:'search',
   params:{keyword:this.keyword},
   query:{k:this.keyword.toUpperCase()}
 })

另外两种不常用的方法
在这里插入图片描述

3)在路由组件Search处验证测试是否传参成功

在这里插入图片描述
测试结果
在这里插入图片描述
成功传参啦!

2.路由传参相关面试题

1)路由传递参数(对象写法)path是否可以结合params参数一起使用?

否,params参数只能与name一起使用.

2)如何指定params参数可传可不传?

在这里插入图片描述
在配置路由时,在占位的后面加上一个问号[params可以传递或者不传递]

3)params参数可以传递也可以不传递,但是如果传递是空串,如何解决?

使用undefined解决
在这里插入图片描述

4)路由组件能不能传递props数据?

可以,三种方式
1:布尔值写法:params
在router中配置props:true
在这里插入图片描述
在search组件中配置props参数
在这里插入图片描述
测试
在这里插入图片描述
2:对象写法:额外的给路由组件传递一些props
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3:函数写法:可以params参数,query参数,通过props传递给路由组件(常用)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值