当前位置: 首页 > news >正文

elementplus菜单组件的那些事

在使用 elementplus 的菜单组件时,我发现有很多东西是官方没有提到但是需要注意的点

1. 菜单组件右侧会有一个边框

设置css

.el-menu {border: 0 !important;
}

2. 使用其他的 icon

文字内容一定要写在 这个 名字为 title 的插槽中

<el-menu-itemv-for="item in navList":key="item":index="item.path"><spanstyle="margin-right: 20px; font-weight: bold":class="item.icon"></span>//这个地方我使用的是 阿里巴巴图标库里面的图表<template #title>{{ item.text }}//文字要在这里面</template></el-menu-item>

3. 刷新不能回到对应的 活动样式失效

我这边使用的是 :class 加 设置 :default-active 

先是在 el-menu-item 中指定了 选中时的样式

<el-menu-item:class="{subActive:getCurrentPath()==item.path}"//这行代码待会会解释v-for="item in navList":key="item":index="item.path"><spanstyle="margin-right: 20px; font-weight: bold":class="item.icon"></span><template #title>{{ item.text }}</template></el-menu-item>

  通过 getCurrentPath 这个函数获取到 当前的路径 ,并且 判断是否和当前的路径符合,来控制样式是否显示

我这边的 getCurrentPath 这个函数里面 是因为 前面前缀是一样的,我只需要判断后面是否相等就行,之所以会这样写 是因为很多时候 我们左侧的路由 因为右边的内容页,再细分,但是呢,它是同属于一个大的路由的,它们会有一个公共的前缀部分,只需要保证公共前缀部分相等就行

const getCurrentPath = () => {let currentPath = route.path.split("/");// console.log(currentPath);for (let i = 0; i < navList.length; i++) {let path = navList[i].path.split("/");if (flag === 0) {if (path[2] == currentPath[2]) {return navList[i].path;}}else{if (path[1] === currentPath[3]) {return navList[i].path;}}}
};

一般情况应该是这样,插一嘴,route 指的是 这个

import { useRoute } from "vue-router";const route = useRoute();
const getCurrentPath = () => {for (let i = 0; i < navList.length; i++) {if(navList[i].path===route.path) return navlist[i].path//其实就是判断 菜单的路由是否对的上当前路径}
};

然后 在 el-menu 中 需要设置 router 模式,也就是需要加上这个,设置默认路由 是 getCurrentPath() 就好(一定需要匹配的上 :index 里面的内容)

<el-menuclass="el-menu-vertical-demo":collapse="isCollapse"router:default-active="getCurrentPath()"></el-menu>

4. 修改高度等

element-plus 中很多样式都是设置了一个固定的值来设定css的一些参数,当我们需要修改这些的时候,我们发现使用 css 覆盖的效果微乎其微,其实我们可以自己修改这些值

很多都可以去检查里面找到,然后进行修改

:root {--el-menu-item-height: 80px;//这个是每个子菜单高度--el-menu-base-level-padding: 40px;//padding值--el-text-color-primary: #8a8989;//文字颜色
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言 之 理解指针(4)
  • idea常用免费插件(持续更新欢迎补充)
  • AI作图接口要怎么调用呢?
  • 论文阅读-《Distant Supervision for Relation Extraction beyond the Sentence Boundary》
  • python+vue3+onlyoffice在线文档系统实战20240725笔记,首页开发
  • Linux第四章课后作业(ssh)
  • 又一新AI搜索工具,OpenAI 推出新的搜索方式 SearchGPT
  • 实战:Zookeeper 简介和单点部署ZooKeeper
  • 计算机的错误计算(四十六)
  • 构建实时Java数据处理系统:技术与实践
  • oracle 19c RAC-OracleLinux8.10安装19c遇到的问题
  • 反射API安全白皮书:深入解析与防御策略
  • 【Vulnhub系列】Vulnhub_Raven2靶场渗透(原创)
  • Sentinel隔离、降级、授权规则详解
  • npm国内淘宝镜像registry镜像过期
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [nginx文档翻译系列] 控制nginx
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【391天】每日项目总结系列128(2018.03.03)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Debian下无root权限使用Python访问Oracle
  • javascript数组去重/查找/插入/删除
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Spring Boot快速入门(一):Hello Spring Boot
  • 基于遗传算法的优化问题求解
  • 前端之Sass/Scss实战笔记
  • 软件开发学习的5大技巧,你知道吗?
  • 我从编程教室毕业
  • 写代码的正确姿势
  • 一天一个设计模式之JS实现——适配器模式
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (rabbitmq的高级特性)消息可靠性
  • (第二周)效能测试
  • (二十四)Flask之flask-session组件
  • (翻译)terry crowley: 写给程序员
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (推荐)叮当——中文语音对话机器人
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)C#调用WebService 基础
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net framework profiles /.net framework 配置
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET基础篇——反射的奥妙
  • .net连接oracle数据库
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians