element-ui 左侧菜单栏默认高亮问题

7 篇文章 0 订阅
6 篇文章 0 订阅
<el-menu
      :default-active="$route.path"
      unique-opened
      :collapse-transition="false"
      router
      background-color="#333744"
      text-color="#fff"
      active-text-color="#ffd04b">
          <el-menu-item
          :index="item.path"
          v-for="item in menulist"
          :key="item.id"
          >
          <!-- 图标 -->
          <i :class="iconsObj[item.id]"></i>
          <!-- 文本 -->
          <span slot="title">{{item.authName}}</span>
          </el-menu-item>
 </el-menu>
 // 左侧菜单数据
      menulist: [
        {
          id: 1,
          authName: '报名信息管理',
          path: '/registration'
        },
        {
          id: 2,
          authName: '注册用户管理',
          path: '/userRegist'
        },
        {
          id: 3,
          authName: '管理员注册',
          path: '/adminRegis'
        },
        {
          id: 4,
          authName: '管理员列表',
          path: '/adminList'
        }
      ],

将default-active设置为$route.path,el-menu-item的index设为要跳转的路由(并且点击菜单项,会直接push到点击的页面)

改变之前
<el-menu
      :default-active="activePath"
      unique-opened
      :collapse-transition="false"
      router
      background-color="#333744"
      text-color="#fff"
      active-text-color="#ffd04b">
          <el-menu-item
          :index="item.path"
          v-for="item in menulist"
          :key="item.id"
          @click="saveNavState(item.path)"
          >
          <!-- 图标 -->
          <i :class="iconsObj[item.id]"></i>
          <!-- 文本 -->
          <span slot="title">{{item.authName}}</span>
          </el-menu-item>
</el-menu>
 // 被激活的链接地址
      activePath: ''
    }
  },
  created () {
    // 把值取出来
    this.activePath = window.sessionStorage.getItem('activePath')
  },
  methods: {
    // 保存链接的激活状态
    saveNavState (activePath) {
      window.sessionStorage.setItem('activePath', activePath)
      // 重新赋值解决刷新闪屏
      this.activePath = activePath
    }
  }
代码解释

1.在el-menu中关联高亮的链接地址

<el-menu :default-active="activePath"></el-menu>

2.在data中保存被激活的链接地址

export default {
  data() {
    return {
      // 被激活的链接地址
      activePath: ""
    };
  }
}

3.在具体的el-menu-item添加点击事件

//添加saveNavState事件,并传入路由地址
el-menu-item @click="saveNavState('item.path')

4.定义saveNavState函数

// 保存链接的激活状态
    saveNavState(activePath) {
      window.sessionStorage.setItem("activePath", activePath);
      this.activePath = activePath;
    }

5.在生命周期create时,获取地址

created() {
    this.activePath = window.sessionStorage.getItem("activePath");
  }

6.此外,这种方法还可以实现许多其他有关刷新储存数据的功能

### 回答1: 这个问题似乎是一个编码问题。它的原始字符是由十六进制编码表示的,它们需要被解码为可读的字符。 假设这是一个关于Vue.jsElement UI问题,那么“左侧菜单栏”可能是指元素UI库中用于显示侧栏菜单的组件之一。它可能被用于在Vue.js应用程序中显示侧栏菜单项。 ### 回答2: Vue/Element UI可以用来创建交互性强、美观的左侧菜单栏。Vue是一个渐进式的JavaScript框架,它让开发者可以将Web界面拆分成可重用的代码块,并实现高效的组件之间通信。Element UI是一个基于Vue的开源UI组件库,它提供了大量的预制组件和样式,可以极大地简化Web应用的开发流程。 左侧菜单栏是Web应用中常见的导航形式,通过它可以让用户快速地找到他们需要的功能入口。在Vue/Element UI中,我们可以选择使用El-Menu组件来实现左侧菜单栏的功能。El-Menu提供了多种样式和布局选项,开发者可以根据应用场景进行自由选择。 创建一个El-Menu的基本流程如下: 1. 引入Element UI库和Vue组件库 2. 在Vue实例中注册El-Menu组件 3. 使用El-Menu组件创建菜单栏 4. 定义菜单项和子菜单 具体代码实现可以参考Element UI的官方文档,或者参考其他开发者的开源项目。 在设计左侧菜单栏的时候,我们需要考虑以下几点: 1. 菜单的样式和主题应该符合应用的整体风格 2. 菜单栏的层级结构应该合理,可以使用分组和子菜单进行分类管理 3. 菜单项的命名应该简洁明了,便于用户快速识别和查找 4. 菜单项的选中状态需要清晰可见,以便用户知道当前所处页面的位置 总之,Vue/Element UI提供了很多强大的组件和工具,可以让我们快速开发出美观、高效、易用的左侧菜单栏。尤其是对于需要大量交互和数据处理的Web应用,Vue/Element UI的开发效率和灵活性都是很有优势的。 ### 回答3: Vue.js 是一个非常流行的前端框架,Element-UI 则是基于 Vue.js 构建的一款 UI 组件库,主要用于快速开发 Web 应用。左侧菜单是 Element-UI 中一个非常常见的组件,可以用于构建 Web 应用的导航菜单。 左侧菜单通常位于页面的左侧,包含多个菜单项以及每个菜单项对应的子菜单,用户可以通过点击菜单项来访问不同的页面或功能模块。在 Vue.js 中,我们可以使用 Element-UIMenu 组件来构建左侧菜单。 Menu 组件支持水平和垂直两种菜单模式,可以通过 mode 属性来设置。在左侧菜单中,通常使用垂直菜单模式,将菜单项垂直排列在左侧。我们可以在菜单项中通过 icon 属性来设置图标,通过 index 属性来设置菜单项的唯一标识符。 除了菜单项之外,左侧菜单还包含每个菜单项对应的子菜单。在 Element-UI 中,可以使用 Submenu 组件来实现子菜单。我们可以在子菜单中添加多个菜单项,在通过点击父菜单项来切换或显示子菜单。在实现子菜单的时候,需要使用 element 的 index 属性来设置子菜单的唯一标识符,并在父菜单项的 v-slot:default 中使用 v-for 循环渲染子菜单项。 总的来说,Vue.jsElement-UI左侧菜单栏组件非常简单易用,可以用来快速构建 Web 应用的导航菜单。通过合理的组织菜单项和子菜单,可以让用户快速定位和访问需要的页面或功能模块,提高用户体验和工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值