[element-ui] el-menu的default-active值变化,但是页面不刷新

问题:dataArray、activeIndex 都变化后,页面的一级菜单没有按照 activeIndex 进行高亮。
解决方法:el-menu-item 的 key 不能绑定为 i,应该绑定唯一值,例如和 index 绑定相同的值。
原因分析:猜测与虚拟 DOM 的渲染机制有关。

<el-menu
	:default-active="activeIndex"
	class="el-menu-demo"
	mode="horizontal"
	@select="handleSelect"
>
	<el-submenu index="1">
		<template slot="title">xxxx</template>
		<el-menu-item
			:index="item.value"
			v-for="(item, i) in dataArray"
			:key="item.value"
			:label="item.name"
			@click.native="handleClick(item)"
			>{{ item.name }}
		</el-menu-item>
	</el-submenu>
	<el-submenu index="2">
		……
	</el-submenu>
	<el-submenu index="3">
		……
	</el-submenu>
</el-menu>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
element-uiel-menu中,可以使用`router-link`来实现路由跳转,这样在切换路由时就可以保持当前选中的菜单项。具体实现步骤如下: 1. 在el-menu中使用`router-link`组件来实现路由跳转,如下所示: ``` <el-menu default-active="1" class="el-menu-vertical-demo" router> <router-link to="/home"> <el-menu-item index="1"><i class="el-icon-menu"></i>首页</el-menu-item> </router-link> <router-link to="/about"> <el-menu-item index="2"><i class="el-icon-menu"></i>关于我们</el-menu-item> </router-link> <router-link to="/contact"> <el-menu-item index="3"><i class="el-icon-menu"></i>联系我们</el-menu-item> </router-link> </el-menu> ``` 2. 使用Vue Router的`router-link-active`指令来自动设置菜单项的选中状态,如下所示: ``` <el-menu default-active="1" class="el-menu-vertical-demo" router> <router-link to="/home" router-link-active="active"> <el-menu-item index="1"><i class="el-icon-menu"></i>首页</el-menu-item> </router-link> <router-link to="/about" router-link-active="active"> <el-menu-item index="2"><i class="el-icon-menu"></i>关于我们</el-menu-item> </router-link> <router-link to="/contact" router-link-active="active"> <el-menu-item index="3"><i class="el-icon-menu"></i>联系我们</el-menu-item> </router-link> </el-menu> ``` 3. 在样式中定义`.active`类来设置选中状态的样式,如下所示: ``` .active { background-color: #409EFF !important; color: #fff !important; } ``` 这样就可以实现在el-menu中保持当前选中的菜单项,并在切换路由时自动更新选中状态。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值