1.Vue路由传递params参数使用对象写法的时候能不能和path一起使用?
不能
路由传参对象的写法:指定路由需要使用name指定。使用path会导致路由失效无法跳转。
this.$router.push({name:"search",params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()}})
2.如何指定params参数可以传或者不传?
如果路由要求传递params参数,但是没有传,路由会出现问题
解决:在路由占位后面加上?
path: "/search/:keyword?",//params传参
3.解决params参数传递''空串出现的问题
this.$router.push({name:"search",params:{keyword:this.keyword||undefined},query:{k:this.keyword.toUpperCase()}})
4.路由组件能否利用props传参?
可以利用,方法有三。
1.props:true 只能穿params参数
2.props:{a:1,b:2}传递额外的参数
3.函数法
props:function ($route) {//函数法传params 和query参数
return {keyword:$route.keyword,k:$route.keyword.toUpperCase()}
}
}