elementplus菜单组件的那些事

embedded/2024/10/22 17:23:20/

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

javascript">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 指的是 这个

javascript">import { useRoute } from "vue-router";const route = useRoute();
javascript">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 里面的内容)

javascript"><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;//文字颜色
}


http://www.ppmy.cn/embedded/86700.html

相关文章

Common instructions of git(git常见指令)

git add . add your codes to computer staging area 提交你的代码到暂存区 git status view the status of added files in computer staging area 查看暂存区已提交文件状态 git commit -m "message" add your codes to your local branch 添加你的代码到你的本地…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 开源项目热度排行榜(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆Coding ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 93 分 最新华为OD机试目录…

国科大作业考试资料-人工智能原理与算法-2024新编-第十二次作业整理

袋子里面有3个有偏差的硬币a、b和c,抛掷硬币正面朝上的概率分别是20%、60%和80%。从袋 子里随机取出一个硬币(3个硬币被取出的概率是相等的),并把取出的硬币抛掷3次,得到抛掷结 果依次是X1 , X2和 X3。 a. 画出对应的贝叶斯网络并定义必要的CPT表。 b. 如果抛掷结果是…

Angular由一个bug说起之八:实践中遇到的一个数据颗粒度的问题

互联网产品离不开数据处理&#xff0c;数据处理有一些基本的原则包括&#xff1a;准确性、‌完整性、‌一致性、‌保密性、‌及时性。‌ 准确性&#xff1a;是数据处理的首要目标&#xff0c;‌确保数据的真实性和可靠性。‌准确的数据是进行分析和决策的基础&#xff0c;‌因此…

eclipse ui bug

eclipse ui bug界面缺陷&#xff0c;可能项目过多&#xff0c;特别maven项目过多&#xff0c;下载&#xff0c;自动编译&#xff0c;加载更新界面异常 所有窗口死活Restore不回去了 1&#xff09;尝试创建项目&#xff0c;还原界面&#xff0c;失败 2&#xff09;关闭所有窗口&…

labview四字节转浮点数

1.labview四字节转浮点数 2.Labview怎么把串口接收到的数据转换成浮点数&#xff1f; Labview怎么把串口接收到的数据转换成浮点数&#xff1f;

AI有关的学习和python

一、基本概念 AIGC&#xff08;AI Generated content AI 生成内容&#xff09; AI生成的文本、代码、图片、音频、视频。都可以成为AIGC。 Generative AI&#xff08;生成式AI&#xff09;所生成的内容就是AIGC AI指代计算机人工智能&#xff0c;模仿人类的智能从而解决问题…

TCP的FIN报文可否携带数据

问题发现&#xff1a; 发现FTP-DATA数据传输完&#xff0c;TCP的挥手似乎只有两次 实际发现FTP-DATA报文中&#xff0c;TCP层flags中携带了FIN标志 piggyback FIN 问题转化为 TCP packet中如果有FIN flag&#xff0c;该报文还能携带data数据么&#xff1f; 答案是肯定的 RFC7…