vue路由Router设置父路由默认选中第一个子路由,切换子路由让父路由激活高亮效果不会消失_重定向

在Vue Router中可以通过配置<router-view>组件的keep-alive属性来保持组件状态,以达到在不同路由之间切换时保持组件状态的目的。同时,可以使用<router-link>组件的exact属性来指定是否精确匹配路由路径。

针对您的问题,可以通过以下步骤实现父路由默认选中第一个子路由,切换子路由时父路由仍然激活高亮效果:

  1. 在父路由的组件中使用<router-view>组件,并设置keep-alive属性,如下所示:
<router-view keep-alive></router-view>
  1. 在父路由的组件中通过$route对象获取当前路由路径,然后使用<router-link>组件的exact属性指定是否精确匹配路由路径。同时,为了让子路由切换时父路由仍然激活高亮效果,需要在父路由的<router-link>组件上添加exact-active-class属性,如下所示:
<router-link to="/parent/child1" exact :class="{active: $route.path === '/parent/child1'}" exact-active-class="active">Child 1</router-link>
<router-link to="/parent/child2" exact :class="{active: $route.path === '/parent/child2'}" exact-active-class="active">Child 2</router-link>
  1. 在父路由的组件的mounted生命周期钩子中,使用$router.push()方法将路由重定向到第一个子路由的路径,即可实现父路由默认选中第一个子路由的效果,如下所示:
mounted() {
  this.$router.push('/parent/child1');
}
  1. 在父路由的组件的样式中添加.active类的样式,以实现激活高亮效果,如下所示:
.active {
  color: red;
}