element-plus默认菜单打开

在 Vue 3 中使用 Element Plus 的 <el-menu> 组件时,默认情况下菜单项是关闭状态的。如果你想让某个菜单项默认处于展开状态,你可以通过设置菜单项的 default-active 属性来实现。

默认写法

步骤 1: 设置 default-active

你需要在 <el-menu> 组件上设置 default-active 属性,并为其提供一个值,该值应该是你希望默认激活的菜单项的索引或路径。

示例代码

假设你有一个简单的菜单结构,其中包含一个子菜单,你想让这个子菜单默认展开:

<template><el-menu :default-active="activeIndex" class="el-menu-vertical-demo"><el-sub-menu index="1"><template #title><el-icon><location /></el-icon><span>导航一</span></template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item><el-menu-item index="1-3">选项3</el-menu-item></el-sub-menu><el-menu-item index="2"><el-icon><document /></el-icon><template #title>导航二</template></el-menu-item><el-menu-item index="3" disabled><el-icon><setting /></el-icon><template #title>导航三</template></el-menu-item></el-menu>
</template><script setup>
import { ref } from 'vue';
import { Location, Document, Setting } from '@element-plus/icons-vue';const activeIndex = ref('1-1');  // 默认激活 "1-1" 菜单项
</script>

说明

  1. default-active 属性:设置为 '1-1',表示默认激活 index="1-1" 的菜单项。
  2. el-sub-menu:用于创建子菜单。
  3. el-menu-item:用于创建菜单项。
  4. <el-icon>:用于显示图标。
  5. <template #title>:用于自定义菜单项的标题。

注意事项

  • 如果你想让一个子菜单默认展开,可以将 default-active 设置为该子菜单中的任意一个子菜单项的 index
  • 如果你想让多个子菜单默认展开,可以使用数组形式的 default-active 属性。

示例:多个子菜单默认展开

如果你想让多个子菜单默认展开,你可以将 default-active 设置为一个数组,包含你希望默认激活的菜单项的索引。

<template><el-menu :default-active="['1-1', '2']" class="el-menu-vertical-demo"><el-sub-menu index="1"><template #title><el-icon><location /></el-icon><span>导航一</span></template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item><el-menu-item index="1-3">选项3</el-menu-item></el-sub-menu><el-menu-item index="2"><el-icon><document /></el-icon><template #title>导航二</template></el-menu-item><el-menu-item index="3" disabled><el-icon><setting /></el-icon><template #title>导航三</template></el-menu-item></el-menu>
</template><script setup>
import { ref } from 'vue';
import { Location, Document, Setting } from '@element-plus/icons-vue';const activeIndex = ref(['1-1', '2']);  // 默认激活 "1-1" 和 "2" 菜单项
</script>

在这个例子中,default-active 设置为 ['1-1', '2'],表示默认激活 index="1-1"index="2" 的菜单项。这将使得 index="1" 的子菜单及其第一个子菜单项 index="1-1" 处于展开状态,并且 index="2" 的菜单项也处于激活状态。

特殊写法

Menu 组件

<template><template v-for="(item, index) in menuList" :key="index"><!-- 没有子路由 --><template v-if="!item.children"><el-menu-item v-if="!item.meta.hidden" :index="item.path" @click="goRoute"><el-icon><component :is="item.meta.icon"></component></el-icon><template #title><span>{{ item.meta.title }}</span></template></el-menu-item></template><!-- 只有一个子路由 --><template v-if="item.children && item.children.length == 1"><el-menu-item v-if="!item.children[0].meta.hidden" :index="item.children[0].path" @click="goRoute"><el-icon><component :is="item.children[0].meta.icon"></component></el-icon><template #title><span>{{ item.children[0].meta.title }}</span></template></el-menu-item></template><!-- 有多个子路由 --><el-sub-menu v-if="item.children && item.children.length > 1" :index="item.path"><template #title><el-icon><component :is="item.meta.icon"></component></el-icon><span>{{ item.meta.title }}</span></template><Menu :menuList="item.children"></Menu></el-sub-menu></template>
</template><script setup lang="ts">
import { useRouter } from 'vue-router'
// 引入路由器
const $router = useRouter()
// 获取父组件传递的数据
defineProps(['menuList'])
// 点击菜单的回调
const goRoute = (vc: any) => {// 路由跳转$router.push(vc.index)
}
</script>
<script lang="ts">
export default {name: 'Menu'
}
</script>
<style scoped></style>

菜单栏 组件:

<template><div class="layout_container"><!-- 左侧菜单 --><div class="layout_slider"><Logo></Logo><!-- 展示菜单 --><!-- 滚动组件 --><el-scrollbar class="scrollbar"><!-- 菜单组件 --><el-menu background-color="#2e2e2e" text-color="white" active-text-color="yellowgreen" :default-active="$route.path"><Menu :menuList="userStore.menuRoutes"></Menu></el-menu></el-scrollbar></div><!-- 顶部导航 --><div class="layout_tabbar">456</div><!-- 内容展示区域 --><div class="layout_main"><Main></Main></div></div>
</template><script setup lang="ts">
// 引入左侧菜单logo子组件
import Logo from './logo/index.vue'
// 引入菜单组件
import Menu from './menu/index.vue'
// 右侧内容的展示区
import Main from './main/index.vue'
// 获取路由对象
import { useRoute } from 'vue-router';
// 获取用户相关的小仓库
import useUserStore from '@/store/modules/user';
let userStore = useUserStore();// 获取路由对象
let $route = useRoute();
</script><style scoped lang="scss">
.layout_container {width: 100%;height: 100vh;background-color: red;.layout_slider {width: $base-menu-width;height: 100vh;background-color: $base-menu-bg;.scrollbar {width: $base-menu-width;height: calc(100vh - $base-menu-logo-height);.el-menu {border-right: none;}}}.layout_tabbar {position: fixed;width: calc(100% - $base-menu-width);height: $base-tabbar-height;background-color: cyan;top: 0px;left: $base-menu-width;}.layout_main {position: fixed;width: calc(100% - $base-menu-width);height: calc(100% - $base-tabbar-height);background-color: yellow;top: $base-tabbar-height;left: $base-menu-width;padding: 20px;overflow: auto;}
}
</style>

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

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

相关文章

《分析模式:可重用对象模型》学习笔记之四:企业财务分析中的观察和测量06

下面是一些用Java 给出的代码示例&#xff08;Sample code&#xff09;&#xff0c;是作者最喜欢的Date Range。 class DateRange... public DateRange (Date start, Date end) { this (new MfDate(start), new MfDate(end)); } public DateRange (MfDate start, MfDate end) {…

会声会影剪辑视频收费吗,会声会影最新破解版

会声会影2024&#xff1a;引领视频创作新时代的创新之旅** 在数字时代的浪潮中&#xff0c;视频创作已成为连接世界、表达创意的重要方式。随着技术的不断进步&#xff0c;一款名为“会声会影2024”的视频编辑软件横空出世&#xff0c;它不仅继承了前代产品的优秀传统&#xf…

如何在VMwareWorkstation上安装的ESXi系统扩容存储

在做ESXi的相关实验的时候&#xff0c;需要扩容ESXi的存储&#xff0c;那么如何进行操作呢&#xff1f; 扩容VMwareWorkstation上虚拟机的存储 首先我们需要先扩容虚拟机上的存储&#xff08;可不关闭虚拟机&#xff09;按照图下所示&#xff0c;右键虚拟机&#xff0c;点击设…

银行总分支文件分发系统:在安全与效率之间找到平衡

银行的组织结构通常根据其规模、业务范围和地域分布而有所不同&#xff0c;但一般会包括以下几个层级&#xff1a;总行-区域总部或分行-分行-支行-业务中心或服务中心-国际分支机构-附属机构或子公司。 在日常中&#xff0c;存在总分支文件分发的业务场景&#xff0c;文件类型通…

最方便的MODIS数据下载

这篇文章给出现在最方便的MODIS数据下载方法。 传统的方式通过访问NASA的数据中心&#xff1a;https://ladsweb.modaps.eosdis.nasa.gov/ 具体方法可以参考我前面的一篇文章&#xff1a;https://blog.csdn.net/qq_39085138/article/details/116302600 但是可以发现如果想要处理…

代码随想录算法训练营第二十二天(回溯 一)

开始学习回溯&#xff01; 回溯理论基础 代码随想录文章链接:代码随想录 文章摘要: 什么是回溯法 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 在二叉树系列中&#xff0c;我们已经不止一次&#xff0c;提到了回溯。 回溯是递归的副产品&#xff0c;只…

element组件封装

1.上传组件 <!--文件上传组件--> <template><div class"upload-file"><el-uploadref"fileUpload"v-if"props.type default":action"baseURL other.adaptationUrl(props.uploadFileUrl)":before-upload"h…

屏幕翻译器下载哪个?语言达人必备这些

想象一下&#xff0c;你站在人头攒动的12分钟洛杉矶沙滩音乐节现场&#xff0c;四周是来自世界各地的音乐爱好者&#xff0c;他们带着各自的文化与热情&#xff0c;用不同的语言欢呼、交谈。 舞台上&#xff0c;乐队正激情演奏&#xff0c;旋律激荡人心&#xff0c;但偶尔传来…

HarmonyOS 开发

环境 下载IDE 代码 import { hilog } from kit.PerformanceAnalysisKit; import testNapi from libentry.so; import { router } from kit.ArkUI; import { common, Want } from kit.AbilityKit;Entry Component struct Index {State message: string Hello HarmonyOS!;p…

wordpress修改域名方法及验证登录方法

UPDATE wp_options SET option_value replace(option_value, 旧域名, 新域名) WHERE option_name home OR option_name siteurl;UPDATE wp_posts SET post_content replace(post_content, 旧域名, 新域名);UPDATE wp_posts SET guid replace(guid, 旧域名, 新域名);UPDATE…

AI赋能软件测试:从自动化到智能化,让测试工作事半功倍

引言 在当今这个日新月异的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;正以不可阻挡之势渗透并重塑着各行各业&#xff0c;其中&#xff0c;软件开发与测试领域更是迎来了前所未有的变革。随着软件系统的复杂性日益增加&#xff0c;用户对软件质量、性能及安全性的…

SQL每日一练-0816

今日SQL题&#xff1a;计算每个项目的年度收入增长率 难度系数&#xff1a;&#x1f31f;☆☆☆☆☆☆☆☆☆ 1、题目要求 计算每个项目每年的收入总额&#xff0c;并计算项目收入环比增长率。找出每年收入增长率最高的项目。输出结果显示年份、项目ID、项目名称、项…

微软AI人工智能认证有哪些?

微软提供的人工智能认证主要包括以下几个方面&#xff1a; Azure AI Fundamentals&#xff08;AI900认证&#xff09;&#xff1a;这是一个基础认证&#xff0c;旨在展示与Microsoft Azure软件和服务开发相关的基本AI概念&#xff0c;以创建AI解决方案。它面向具有技术和非技术…

[数据集][目标检测]航拍屋顶检测数据集VOC+YOLO格式458张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;458 标注数量(xml文件个数)&#xff1a;458 标注数量(txt文件个数)&#xff1a;458 标注类别…

浅谈Java Spring Boot

一、基本介绍 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring Boot致力于在蓬勃发展…

基于python的自适应svm电影评价倾向性分析设计与实现

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

【EI检索稳定】2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)

由悉尼科技大学和西南交通大学联合主办&#xff0c;四川大学、中南大学社会计算研究中心、西南财经大学、武汉理工大学协办的2024年第四届数字化社会与智能系统国际学术会议将于2024年11月22-24日在中国郑州举行。会议主题主要聚焦智能系统在数字化社会中的相关技术和应用发展。…

Vsphere连接ESXI主机创建虚拟机并安装操作系统

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

Nature系列|病理人工智能综述以及模型的可解释性分析|顶刊速递·24-08-21

小罗碎碎念 文献日推主题&#xff1a;病理AI综述&模型可解释性分析 今天准备了四篇文章&#xff0c;感觉之前一次推六篇&#xff0c;多了点&#xff0c;以后都这个标准了。 前三篇都是nature reviews系列的大综述&#xff0c;其中两篇是不区分癌种的&#xff0c;第三篇是专…

FTP协议-匿名用户登录 从0到1

前言 日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解&#xff0c;其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。 FTP简介 FTP是File Transfer Protocol&#xff08;文件传…