vue3+Element Plus功能组件封装——顶部导航(动态渲染+样式调整)

news2025/1/12 8:54:18

网页顶部的导航栏,一般由代码动态生成

菜单数据在文件内统一配置,方便增删改查,导入后可自动生成导航菜单

代码如下

1.dom部分(简单示例)

<el-menu mode="horizontal" :default-active="currentPath" router
				@select="selectedMenu"
				style="border-bottom: none;width: 1250px;background-color: #073371;height: 80px;">
				<div v-for="(navMenu,index) in menuList" :key="index">
					<el-menu-item v-if="!navMenu.children" :index="navMenu.key">
						{{ navMenu.title }}
					</el-menu-item>
				<el-sub-menu v-if="navMenu.children" :index="index.toString()" class="mu_submenu">
						<template #title>{{navMenu.title}}</template>
					<el-menu-item v-for="subMenu in navMenu.children"                     :index="subMenu.key">
							{{ subMenu.title }}
				</el-menu-item>
		</el-sub-menu>
	</div>
</el-menu>

<script setup>
import {
		ref,
		onMounted,
		computed,
		reactive,
		watch
	} from 'vue'
import {
		useRouter,
		useRoute
	} from 'vue-router'
    let currentPath = ref('')
	onMounted(() => {
		let route = useRoute()
		currentPath.value = route.path
	})

const menuList = ref([
    {
	id: 1,
	title: "page1",
	key: '/path1',
}, {
	id: 2,
	title: "page2",
	children: [{
		id: 3,
		title: "page2-1",
		key: '/path21'
	}, {
		id: 4,
		title: "page2-2",
		key: '/path22'
	}]
}
])

</script>

2.css部分

以下样式分为两个style,没有scope限制的样式用于控制二级菜单弹出层的宽度,因为需要脱离scope限制,如果有多个页面用到可放在父级页面样式中,如App.vue

<style scoped>
	:deep(.el-menu-item),
	:deep(.el-sub-menu__title) {
		background: #073371 !important;
		color: #7EA4DD;
		font-size: 18px;
		font-weight: bold;
		height: 80px;
	}
</style>
<style>
	/* 导航菜单设置样式*/
	.el-menu--collapse .el-menu .el-submenu,
	.el-menu--popup {
		min-width: 100px !important;
		padding: 0 15px !important;
		border: none !important;
		text-align: center !important;
	}
</style>

修改前————>>>修改后

3.菜单高亮(重点选中二级菜单时高亮)

一级菜单实现,可按需求添加背景图

.el-menu .el-menu-item.is-active {
		/* background: url('../assets/other/activemenu.png') 0px 57px !important; */
		/* background-repeat: no-repeat !important; */
		/* background-position: 0 0; */
		background-color: #08336F !important;
		color: aliceblue !important;
	}

 二级菜单实现,通过计算当前导航索引动态添加类

:class="currentActiveIndex==index? 'activeSubmenu':'defaultSubmenu'"

分别为激活和未激活设置不同的样式,提升用户体验

:deep(.el-menu .activeSubmenu .el-sub-menu__title){
	color: aliceblue !important;
	/*background: url('../assets/other/activemenu.png') 0px 57px !important;
	background-repeat: no-repeat !important;
	background-position: 0 0;*/
	}
:deep(.el-menu .defaultSubmenu .el-sub-menu__title) {
	color: #7EA4DD !important;
}

以上即可动态渲染导航菜单,如果为垂直,修改mode模式即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2040160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java Spring|day1.Spring基础

框架 Core IoC容器AOP功能数据绑定类型转换等 TestingData AccessWeb Servlet 核心 IOC容器 定义 IoC&#xff08;Inversion of Control&#xff09;是控制反转的意思&#xff0c;这是一种面向对象编程的设计思想。 优点 在不采用这种思想的情况下&#xff0c;我们需要自…

51单片机-动态数码管显示

动态数码管显示就是在数码管中显示多个数字&#xff0c;利用了人眼的视觉差显示了数字&#xff0c;但是存在一个问题&#xff0c;在顺序执行显示数字和数值的设置时候&#xff0c;数码管的显示数据会出现错乱&#xff0c;因此&#xff0c;需要执行消影&#xff0c;每次在数码管…

机器学习速成第二集——监督学习之分类(理论部分)!

目录 分类算法的种类 分类问题的应用场景 模型选择与评估 结论 如何在不同数据集中选择最适合的监督学习分类算法&#xff1f; 监督学习中集成模型与单一模型相比有哪些具体的优势和劣势&#xff1f; 优势&#xff1a; 劣势&#xff1a; 在处理高维稀疏数据时&#xf…

AAAI论文截稿

标题&#xff1a;AAAI2025截稿不足36小时!抓住今年最后的机会&#xff01; 点击上方“会议之眼”关注 重磅干货&#xff0c;第一时间送达 会议之眼 快讯 AAAI&#xff08;Association for the Advancement of Artificial Intelligence&#xff09;全称国际顶级人工智能学术…

Promise 一个基于协程下的任务队列状态管理任务包 解决复杂的异步转同步问题

前言 一直都想写关于Promise的东西&#xff0c;Promise解决的问题特别多&#xff0c;而普通前端就把这东西结合ajax来做一个await request() ,如果仅仅作为这样一种东西使用那就太可惜了。 它是队列的任务包 前端同学应该是没听说过队列&#xff0c;但是大前端同学&#xff0…

Kubernetes-K8S

Kubernetes由于单词太长&#xff0c;省略掉中间8个字母简称为K8S。它介于应用服务和服务器之间。能够通过策略协调和管理多个服务&#xff0c;只需要一个YAML文件配置。定义应用的部署顺序等信息&#xff0c;自动部署应用到各个服务器&#xff0c;还可以自动扩容缩容。 架构原理…

RabbitMQ实现多线程处理接收消息

前言&#xff1a;在使用RabbitListener注解来指定消费方法的时候&#xff0c;默认情况是单线程去监听队列&#xff0c;但是这个如果在高并发的场景中会出现很多个任务&#xff0c;但是每次只消费一个消息&#xff0c;就会很缓慢。单线程处理消息容易引起消息处理缓慢&#xff0…

前程无忧 阿里227滑块 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;有相关问题请第一时间头像私信联系我删…

Qt下使用QtPdfium处理PDF文档

文章目录 前言一、使用QPdfDocument二、使用QtPdfium三、示例完整代码总结 前言 在我之前的文章中&#xff0c;有提到如何生成PDF&#xff0c;这个可以查看文末参考文章。如果要实现在Qt下进行PDF文档的处理&#xff08;读取显示&#xff09;&#xff0c;可以使用自带的PDF库以…

Unity(2022.3.38LTS) - 基础概念

目录 一. 场景 二. 游戏对象 三. 组件 四. 标签 五. 静态游戏对象 六. 保存 一. 场景 Unity 场景是游戏或应用开发中的一个重要概念。 Unity 场景的组成元素&#xff1a; 它通常包含了各种游戏对象&#xff0c;比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。 作用…

串列翼无人机技术详解

串列翼无人机作为一种特殊布局的飞行器&#xff0c;其概念可追溯至早期航空探索时期。随着航空技术的不断进步&#xff0c;尤其是复合材料、先进控制算法及动力系统的革新&#xff0c;串列翼无人机逐渐从理论走向实践。这一设计初衷在于通过前后两组机翼的巧妙布局&#xff0c;…

Redis Cluster集群

redis-cluster集群 Redis Cluster是Redis官方提供的分布式解决方案。当遇到内存、并发、流量等瓶颈时&#xff0c;就可以采用Cluster架构达到负载均衡目的。 1.Redis单实例主要有单点故障&#xff0c;容量有限&#xff0c;流量压力上限的问题。 Redis单点故障&#xff0c;可以…

全开源智慧停车场微信小程序源码/智能停车系统源码/停车自助缴费系统/停车场管理收费+物业管理+物联网+自助缴费功能

源码简介&#xff1a; 智慧停车场微信小程序源码&#xff0c;全开源智能停车系统源码&#xff0c;停车自助缴费系统&#xff0c;具有停车场管理、停车收费、物业管理、物联网、自助缴费等多种功能。 这是一个全开源的智能停车系统&#xff0c;功能强大。它不仅能帮你管理停车…

如何平衡冷数据(历史库)的成本与性能?| OceanBase应用实践

随着数据量的迅猛增长&#xff0c;企业和组织在数据库管理方面遭遇的挑战愈发凸显。数据库性能逐渐下滑、存储成本节节攀升&#xff0c;以及数据运维复杂性的增加&#xff0c;这些挑战使得DBA和开发者在数据管理上面临更大的压力。 为了应对这些挑战&#xff0c;对数据生命周期…

音频去噪:使用Python和FFT增强音质

根据定义,声音去噪是从音频信号中去除不需要的噪音或干扰,以提高其质量和清晰度的过程。这涉及识别和隔离噪音成分(通常以不规则或高频元素为特征),并将其过滤掉,同时保持原始声音的完整性。 声音去噪目标是改善聆听体验以及音频分析和处理的准确性。过滤掉噪音对于高保真音频…

SQL每日一练-0814

今日SQL题难度&#xff1a;★☆☆☆☆☆☆☆☆☆ 1、题目要求 找出每个部门中薪资最高的员工显示部门ID、部门名称、员工ID、员工姓名以及对应的薪资 2、表和虚拟数据 现有两个表&#xff1a;Employees 和 Departments&#xff0c;记录了员工和部门信息。 CREATE TA…

MySQL-进阶篇-索引

文章目录 1. 准备工作2. 索引概述2.1 什么是索引2.2 索引的优缺点 3. 索引的结构3.1 索引结构介绍3.2 二叉树3.3 BTree3.4 BTree3.5 MySQL 中的 BTree3.6 Hash3.7 思考题&#xff1a;为什么 InnoDB 存储引擎选择使用 BTree 索引结构 4. 索引的分类5. 索引的语法5.1 创建索引5.2…

html+css+js网页制作苹果助手pc1个页面(带js)

htmlcssjs网页制作苹果助手pc1个页面&#xff08;带js&#xff09; 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#x…

解决方案上新了丨趋动科技推出基于银河麒麟操作系统的异构算力池化解决方案

趋动科技携手麒麟软件打造基于银河麒麟操作系统的异构算力池化解决方案&#xff0c;共同探索AI领域新场景。 人工智能技术作为数字经济发展的重要推手&#xff0c;在各行业业务场景中落地需要大量AI算力资源的有效保障。在IT基础设施普遍云化的今天&#xff0c;AI算力一方面需…

【ai】Easy-RAG 不行啊,RAGFlow官方demo行

提取工程:graph-demo-ui.py 没有index.html 过不了。这俩可能是一样的 faiss db 看起来一直报错,txt 输入也不行。chroma 的问题是向量化ok,但是和大模型结合不行。easy-rag代码真不多 chroma db 下的操作 向量化竟然也成功了 问问题不行啊 /home/zhangb