Closed xuxiaoxiao312 closed 7 years ago
我也碰见了这个问题。
既然 NavMenu 中有 router 这个选项。应该在刷新页面之后,保持原来的激活状态。
上面的问题,大致可以用下面解决。 但是还是不能支持路由的 别名。
根据路由获取default-active,类似 :default-active="$route.path"
而且 NavMenu 的 index 不支持 vue-router 的命名方式 {name: "User"}
总结:
如果 NavMenu 支持路由(采用vue-router),就应该实现比较完善的功能。 如果不想耦合在一起的话,不应该提供router 选项。
感谢
这样就可以刷新页面之后,保持原来的激活状态。
感谢 @PanJiaChen
但是有个问题::default-active="$route.path"
和上面的方法有什么不同?
是可以在不刷新页面的路由变动时,动态调整激活状态?
另外问一下,NavMenu 是不支持路由别名吗?
刚才试了一下,
:default-active="$route.path"
和上面的方法。显示效果一致
data() {
return {
activeIndex: '',
};
},
beforeMount: function () {
if(this.$route.name == 'index'){
this.activeIndex = 'feeds'
}else{
this.activeIndex = this.$route.name
}
},
既然没什么问题就先关掉了,另外 @langgo 你说的很好,2.0 已经有点想把 router 的功能去掉了。我认为menu的激活与展开,应该是跟路由无关,而只跟你的 default-active
和 default-openeds
有关。还是建议不要太过于依赖 router 这个功能🌚
代码如下 <el-menu :default-active="sideMenuItems[0].items[0].name" class="el-menu-vertical-demo" router @open="handleOpen" @close="handleClose" theme="dark" unique-opened >