{
path:"/search/:keyword?",
// path:"/search",
component:Search,
meta:{show:true},
name:"search",
}
目的:删除面包屑的华为关键字时,地址栏中的华为也会删除,经过查看,地址栏中的华为是一个param参数,因此在删除的时候进行路由跳转,仅保留query参数即可。
对地址栏中的params进行删除,进行路由跳转,但注意,如果有query参数仍需要保留,
console.log(this.$route.query);
if (this.$route.query){
this.$router.push({ name:"search",query:this.$route.query});
}
执行完上述语句之后仍发现删除不了,看到了一个警告,查找之后发现加一个?就可以解决
只需要在keyword后面加一个?
原因
如果 /search的占位符没有值的时候, 也就是没有传递params参数时, 是无法跳转到 search组件的,路径会重新定位到 跟组件
vue 报错
missing param for named route "search": Expected "keyword" to be defined
解决方式
在路径的占位符后面添加 一个 ? , 代表 这个params参数可以传递,也可以不传递。