解决Vue3.0整合element plus时el-menu导航选中后刷新页面保持当前选中状态

简要概述

  • element plus是element官方针对Vue3.0做的一套前端UI组件,在开发过程中经常会使用到el-menu这个组件,而且我们会将当前激活的菜单设置高亮,而如果不设置default-active属性,我们则会遇到刷新页面后当前激活的菜单项不高亮的问题
  • 下面来解决这个问题,本文是根据vue3做的,之前在网上看到好多教程,都是提示将default-active设置为$router.path,而在vue3中并没有起作用。

解决步骤

  • 我通过浏览器console出‘this.$router.currentRoute’
console.log('打印路由',this.$router.currentRoute);

在浏览器看到:
在这里插入图片描述
在这里打印出了我们想要的路由**“explainer1”**!!!
所以我们可以通过this.$router.currentRoute._value.fullPath访问到当前激活的url,然后将default设置为这个值,我们的这个问题就解决了

  • 我的解决办法:
//el-menu里进行数据绑定
<el-menu
      background-color="#333744"
      text-color="#fff"
      active-text-color="#ffd04b"
      :unique-opened="true"
      :default-active="paths"
       router >
//在script中数据赋值
data() {
    return {
      paths:this.$router.currentRoute._value.fullPath.split("/")[1],
     }
}

然后刷新就可以解决问题了!!

水平有限,如有错误还请指定!

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
如果您选择了 `el-menu` 的某个菜单项,但是 `activeIndex` 没有改变,可能是因为您没有正确地设置 `router` 或 `index` 属性。 如果您使用 `router` 属性来控制 `el-menu` 的选中状态,则需要确保您在路由配置中设置了相应的路由信息,并且路由信息中设置了与菜单项相对应的 `path` 属性。除此之外,您还需要在 `el-menu` 上设置 `default-active` 属性来指定默认选中的菜单项。 如果您使用 `index` 属性来控制 `el-menu` 的选中状态,则需要确保您为每个菜单项设置了唯一的 `index` 值。此外,您还需要在 `el-menu` 上设置 `default-active` 属性来指定默认选中的菜单项。 以下是一个使用 `router` 属性的示例: ```html <el-menu router :default-active="$route.path"> <el-menu-item index="/home">首页</el-menu-item> <el-menu-item index="/about">关于我们</el-menu-item> <el-menu-item index="/contact">联系我们</el-menu-item> </el-menu> ``` 在上面的示例中,`$route.path` 表示当前路由的路径,因此当用户访问 `/home` 路由,`el-menu` 的选中状态会自动切换到 `首页` 菜单项。 如果您想要使用 `index` 属性来控制 `el-menu` 的选中状态,则可以使用以下示例: ```html <el-menu :default-active="activeIndex"> <el-menu-item index="1">菜单项一</el-menu-item> <el-menu-item index="2">菜单项二</el-menu-item> <el-menu-item index="3">菜单项三</el-menu-item> </el-menu> ``` 在上面的示例中,`activeIndex` 是一个 Vue 实例中的数据属性,用于保存当前选中的菜单项的 `index` 值。当用户选择某个菜单项,您需要在 `el-menu` 上监听 `select` 事件,并将选中的菜单项的 `index` 值赋值给 `activeIndex`。 ```javascript export default { data() { return { activeIndex: '1' }; }, methods: { handleSelect(index) { this.activeIndex = index; } } }; ``` 在上面的代码中,`handleSelect` 方法是 `el-menu` 上的 `select` 事件的回调函数,它会在用户选择某个菜单项被调用,将选中的菜单项的 `index` 值赋值给 `activeIndex`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值