使用element-ui的el-menu刷新之后保持选中状态

代码部分

1、handleSelect函数官网示例给出的是2个参数key和keyPath,分别打印出来后是一样的都是当前的路径。保留一个就可以,然后把路径放在sessionStorage中。
2、在vue生命周期mounted函数中把这个当前路径赋值给 activeIndex 即赋值给了 default-active 参数。第一次访问的时候sessionStorage是空的,所以要加入默认的路径。
3、点击链接是可以完美做到刷新后会保持选中状态,但是当我们手动输入路由的时候,页面会跳转但是css样式不会改变。所有加上watch监听属性来监听activeIndex。当输入的路由和当前的路由不一样的时候。把当前的路由赋值给activeIndex。

原文链接:https://blog.csdn.net/qq_28262385/article/details/126003201




<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"
	active-text-color="#4985ED">
	<el-menu-item index="1">
		<router-link to="/" class="about">首页</router-link>
	</el-menu-item>
	<el-menu-item index="2">
		<router-link to="/about" class="about">API接口</router-link>
	</el-menu-item>
	<el-menu-item index="3">
		<router-link to="/help" class="about">帮助支持</router-link>
	</el-menu-item>
	<el-menu-item index="4">
		<router-link to="/aboutUs" class="about">关于我们</router-link>
	</el-menu-item>
	</el-menu>

<script>
	export default {
		data() {
			return {
				activeIndex: '1',
			};
		},
		mounted() {
			this.activeIndex = sessionStorage.getItem('keyPath') || '1';
		},
		watch: {
			activeIndex(newValue) {
				// if (newValur != this.$route.path) {
				// 	this.activeIndex = this.$route.path;
				// }
                   // 如果使用 v-for 循环 可以取消上面注释
				console.log(newValue);
			}
		},
		methods: {
			handleSelect(keyPath) {
				sessionStorage.setItem('keyPath', keyPath);
			}
		}
	}
</script>

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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保持当前选中的菜单项,并在切换路由时自动更新选中状态

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值