几个路由传参的面试题

210 阅读1分钟

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

this.$router.push({path:"/search",params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()}}) 答:路由跳转参数的时候,对象的写法可以是name,path形式,但是,path这种写法不能与params参数一起使用

面试题2:如何指定params参数可传可不传?

如果路由要求传递params参数,但你不传,那么URL会有问题 那么如何指定params参数可传可不传? 答 在配置路由的时候,在占位的后面加上一个问号

面试题3:params参数可传可不传,但是如果传递的是空串,如何解决?

答 使用undefined解决 params参数可以传递,不传递(空串), //this.$router.push({name:'search',params:{keyword:''||undefined},query:{k:this.keyword.toUpperCase()}});

面试题4:路由组件能不能传递props数据?

答:可以 有三种写法

1.布尔值写法 // props:true, 2.对象写法:额外给路由组件传递一些props //props:{a:1,b:2} 3.函数写法(常用)可以把params参数,query参数,通过props传递给路由组件