一、路由传递参数(对象方法)path是否可以结合params参数一起使用?
路由跳转传递参数的时候,对象的写法可以是name、path形式,但需要注意的是,path这种写法不能与params参数一起使用。
//路由传参
// 第一种:字符串形式
// 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() } })
二、如何指定params参数可传可不传
如果路由要求传递params参数,但是你就不传,URL会有问题
指定params参数可传可不传,在配置路由的时候,在占位的后面加上一个问号【params可传可不传】
三、params参数可传可不传,但是如果传递空串如何解决
使用undefined解决
this.$router.push({ name: "search", params: { keyword: ' ' || undefined }, query: { k: this.keyword.toUpperCase() } })
四、路由组件能不能传递props数据?
可以,三种写法
this.$router.push({ name: "search", params: { keyword: this.keyword }, query: { k: this.keyword.toUpperCase() } })
//布尔值写法:params
//props:true,
//对象写法:额外的给路由组件传递一些props
//props:{a:1,b:2}
//函数写法:可以params参数、query参数,通过props传递给路由组件