vue-router传参

本文详细介绍了在Vue.js中通过三种方式传递路由参数,包括字符串、模板字符串和对象写法,并强调了params与query的区别。同时,探讨了如何将数据通过props传递给路由组件,提供了布尔值、对象和函数三种方式的实现。内容涵盖了路由配置、参数可选性处理以及组件数据接收的方法。
摘要由CSDN通过智能技术生成

一、传参三种方式

1、字符串传参

this.$router.push('/search/'+this.keyword+'?q='+this.keyword.toUpperCase())

2、模板字符串传参

this.$router.push(`/search/${this.keyword}?q=${this.keyword.toUpperCase()}`)

3、对象写法,带有params参数需要注意路由配置中要有name

this.$router.push({

name:"search",

params:{keyword:this.keyword},

query:{k:this.keyword.toUpperCase()}

})

注:路由对象跳转对象写法传参时可以是name、path方式,但是path写法不能与params参数一起使用,以上三种方法均需要在路由配置时进行占位

例:

{

name:'search',

path:'/search/:keyword',  //路由占位

component:Search,

meta:{isShow:true}

}

在路由占位时在占位后面加一个?号可指定params参数传与不传------path:'/search/:keyword?'

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

当params参数可传可不传,若params参数传一个空串的话,需要使用undefined进行处理

this.$router.push({

name:"search",

params:{keyword:''||undefined},

query:{k:this.keyword.toUpperCase()}

})

二、路由组件传递props数据

三种方式

1、布尔值方式

{

      name:'search',

      path:'/search/:keyword?', //   /:keyword占位  ?params参数可传可不传

      component:Search,

      meta:{isShow:true},

 /*在组件获取数据时,通过props:[‘keyword’]传递数据,在组件中直接通过{{keyword}}获取到传递的数据,只能传递params参数*/

      props:true 

 }

2、对象写法:额外的给路由组件传递一些props数据

props:{a:1,b:2}

3、函数写法:可以params、query参数,通过props传递给路由组件

props:($route) =>{

        return {keyword:$route.params.keyword,k:$route.query.k}

 }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值