//三种路由传递参数
//字符串方法
this.$router.push('/search/'+this.keyword+"?k="+this.keyword.toUpperCase())
//模板字符串
this.$router.push(`/search/${this.keyword}?k=${this.keyword.toUpperCase()}`)
//对象方法(最常用)
this.$router.push({name:'search',params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()}})
相关面试题
1.路由传递参数(对象写法)path是否可以结合params参数一起使用?
---- 答:不能,路由传参的时候对象的写法可以使name,path形式,但是path不能和params参数一起使用
2.如何指定params参数可传或不可传?
----如果配置路由的时候params参数已经占位了,那么不传递params参数就会导致url有问题,在配置路由的时候,在占位的后面加上一个问号表示params可传或不传
3.当params可传或不传时,如果传递的是空串如何解决?
----使用undefind
params:{keyword:this.keyword||undefined}
4.路由组件能不能传递props数据?
----能
方法:
布尔值写法:props:true
对象写法:额外的给路由组件传递一些props : props:{a:1,b:2}
函数写法:可以params参数,query参数,通过props传递给路由组件
props:(KaTeX parse error: Expected '}', got 'EOF' at end of input: …eturn {keyword:route.params.keyword,k:$route.query.k}
}