Vue+elementUI如何实现左侧菜单高亮

2020-11-09   阅读:3049   类型:前端   分类:Vue    标签: Vue

效果展示

image.png

1、首先给el-menu组件加上:default-active="activePath"属性,再给子集菜单加上@click="saveNavState(subItem.path)"点击事件。

   <!-- 侧边栏 -->
      <el-aside :width="isCollapse ? '64px' : '200px'">
        <div @click="toggleCollapse">|||</div>
        <el-menu background-color="#333744" text-color="#fff" active-text-color="#4091ff" unique-opened :collapse="isCollapse" :collapse-transition="false" router :default-active="activePath">
          <!-- 一级菜单 -->
          <el-submenu :index="item.id + ''" v-for="item in menuList" :key="item.id" >
            <!-- 一级菜单模板区 -->
            <template slot="title">
              <!-- 图标 -->
              <i></i>
              <!-- 文本 -->
              <span>{{item.name}}</span>
            </template>
            <!-- 二级菜单 -->
             <el-menu-item :index="subItem.path" v-for="subItem in item.children" :key="subItem.id" @click="saveNavState(subItem.path)">
               <template slot="title">
                <!-- 图标 -->
                <i></i>
                <!-- 文本 -->
                <span>{{subItem.name}}</span>
              </template>
             </el-menu-item>
          </el-submenu>
        </el-menu>
      </el-aside>

2、Javascript代码: 在点击左侧菜单是把对呀的path路径保存到sessionStorage中,把值取出来再赋值给左侧菜单,点击每个二级菜单是给每个activePath重新赋值。

export default {
  data(){
   return{
        //被激活的链接地址
        activePath: ''
   }
  },
  created(){
    this.activePath = window.sessionStorage.getItem('activePath');
  },
  methods:{
    // 保存链接的激活状态
    saveNavState(activePath){
      window.sessionStorage.setItem('activePath', activePath)
      this.activePath = activePath
    }
  }
</script>


腾讯云11.11上云拼团Go,2核2G3M云服务器 28元/年

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/fdetail/502.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×