动态修改elementui导航栏的名称

动态修改elementui导航栏的名称


elementui+vue是一个经典的前端框架应用。使用elementui可以很快的生成一个导航栏,但是默认的elementui导航栏二级菜单是固定的,不能根据二级菜单动态调整,本文提出一种解决办法。

效果演示

如图1,当选中二级菜单当中的最后“生活实践”的时候,一级菜单显示“生活实践”;

如图2,当选中二级菜单当中的最后“专业技能”的时候,一级菜单显示“专业技能”;
在这里插入图片描述
如图3,当选中的是二级菜单以外的内容的时候,一级菜单显示为默认的"素质系统"
在这里插入图片描述

实现思路

1、首先说代码结构:在一个vue文件里面,至少要包含html代码和js代码,我最开始是这样写的:

html部分(就是简单的element组件部分):

<el-menu mode="horizontal" router :default-active="$route.path">
   <el-menu-item :index="'/'+'index'" >首页</el-menu-item>
   <el-submenu index="2">
     <template slot="title">{{pathName[$route.path]}}</template>
     <el-menu-item :index="'/systema'">思想品德</el-menu-item>
     <el-menu-item :index="'/systemb'">身心发展</el-menu-item>
     <el-menu-item :index="'/systemc'">学业成绩</el-menu-item>
     <el-menu-item :index="'/systemd'">专业技能</el-menu-item>
     <el-menu-item :index="'/systeme'">科创能力</el-menu-item>
     <el-menu-item :index="'/systemf'">生活实践</el-menu-item>
   </el-submenu>
   <el-menu-item :index="'/material'">材料管理</el-menu-item>
   <el-menu-item :index="'/analyse'">分析报告</el-menu-item>
   <el-menu-item :index="'/evaluate'">评价</el-menu-item>
   <el-menu-item :index="'/personalized'">个性化方案</el-menu-item>
   <el-menu-item :index="'/ground'">广场</el-menu-item>
 </el-menu>

js部分(其实就是在js里面定义了一个对象)

pathName: {
   '/systema':'思想品德',
   '/systemb':'身心发展',
   '/systemc':'学业成绩',
   '/systemd':'专业技能',
   '/systeme':'科创能力',
   '/systemf':'生活实践',
 }

2、再说思路:其实是el-menu标签里面的 $route.path 给我的启发,如果我能够拿到当前页面的路径,再根据路径的名字显示相应的内容就行了。于是在需要动态调整名字的地方写上

{{pathName[$route.path]}}

再在js部分事先定义好相应路径的文字内容。
注意:如果当前是处于一级菜单的其他选项的时候,要把这个动态调整的部分处理成默认的文字,所以将以上代码做如下调整:

{{pathName[$route.path]?pathName[$route.path]:'素质系统'}}

也就是当能够在pathName对象里面找到相应的内容的时候,显示对应的文字,如果找不到,说明没有点击对应的一级菜单,所以显示默认的内容

总结

总结就是有两步:
1、结合$route.path获取当前页面路径并根据路径显示相应的文字;
2、创建js对象,将页面路径与文字对应起来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值