解决菜单不随路由改变而高亮 active-text-color

问题场景:

想要点击菜单时,该菜单显示不同的颜色效果

给el-menu 组件加了 active-text-color 属性后,效果基本可以

<el-menu
...
text-color="#fff"
active-text-color="#409EFF"
>
...
</el-menu>

如下图: 

 

但是, 当我手动更改了路由,跳转到另一个页面时,他的高亮显示并没有随之改变

所以,这个不好的体验得修修

解决办法: 

拿到当前激活的菜单路由(我这里是index字符串表示路由)

default-active当前激活菜单的 indexstring

 

给el-menu 组件加一个select事件

select菜单激活回调index: 选中菜单项的 index, indexPath: 选中菜单项的 index path

代码如下: 

<el-menu
    :default-active="$route.path"
    ...
    text-color="#fff"
    @select="handleSelect"
    active-text-color="#409EFF"
></el-menu>
// ....
data () {
  return {
    // ...
    activeIndex: ''
  }
},
watch: {
  $route () {
    this.handleSelect(this.activeIndex)
  }
},
methods: {
  // ...
  handleSelect (index) {
    this.activeIndex = index
  }
}

这样就 ok 啦~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值