5. 【Vue实战--孢子记账--Web 版开发】-- 主页UI

我们在实现个人中心的时候简单的搭建了一个主页UI,但是这个主页并不是我们需要的,在这一节我们将一起实现主页UI的搭建。

一、功能

主页UI的原型如下:
在这里插入图片描述
首页UI原型包括左侧菜单和顶部header,左侧菜单包含多个功能模块的链接:首页、账本、报表、收支分类配置、预算设置配置、主币种配置,这些模块是目前我们要实现的所有功能模块。顶部Header包括左侧孢子记账的Logo以及右侧的个人头像。

二、实现

要实现首页的菜单和顶部Header我们需要用到element plus 的el-menu组件,实现原型图上这种布局方式我们要用到布局组件el-container。下面我们一一实现。

2.1 布局

el-container是 Element Plus 中提供的一个布局容器组件,主要用于构建响应式页面结构。通过与el-headerel-footerel-asideel-main等组件搭配使用,el-container能够快速帮助开发者实现常见的页面布局。它的主要作用是定义一个基础的容器框架,开发者可以在其中组织其他布局组件,以达到预期的页面结构。
在使用el-container时,通常是将其作为外层容器包裹住其他布局组件,比如顶部的el-header、主内容的el-main和底部的el-footer。这类布局非常适用于常见的网页结构,尤其是带有固定头部和页脚的页面。此外,el-aside组件可以用来实现侧边栏,进一步丰富页面布局。el-container默认是水平布局,通过设置direction属性为vertical,也可以实现垂直布局。
下面是一个基础的例子:

<template><el-container style="height: 100vh;"><el-header>Header</el-header><el-container><el-aside width="200px">Aside</el-aside><el-main>Main content</el-main></el-container><el-footer>Footer</el-footer></el-container>
</template>

在上面的例子中,el-container外部包裹了页面的各个部分,el-header表示顶部区域,el-footer表示底部区域,而中间的部分是另一个el-container,它包含了el-aside(侧边栏)和el-main(主内容区域)。这种布局结构适合做有侧边栏的管理后台页面。el-asideel-main可以根据需要调整宽度和样式,实现左右布局。
那么如果需要更灵活的控制,可以通过direction属性调整布局的方向。默认情况下,el-container采用的是水平布局,这意味着所有内部组件会依次横向排列。如果希望实现垂直排列,可以设置direction="vertical",让布局从上到下排列。例如:

<template><el-container direction="vertical" style="height: 100vh;"><el-header>Header</el-header><el-main>Main content</el-main><el-footer>Footer</el-footer></el-container>
</template>

这种布局通常用于简单的页面,没有复杂的侧边栏需求。在实际开发中,el-container配合el-headerel-asideel-mainel-footer等组件,能够快速构建起各种响应式布局,适应不同的屏幕尺寸和需求,非常适合在后台管理系统或单页应用中使用。
下面我们就用el-container来实现我们的首页UI。根据原型分析,我们可以得出外部放置一个大的el-container,接着在内部防止一个el-header用来防止顶部的Header,接着再放置一个el-container,它的内部是放置左侧的菜单el-aside和右侧功能区域el-main,下面是已经实现的布局代码:

<div class="main"><el-container><el-header></el-header><el-container><el-aside width="200px"></el-aside><el-main>Main</el-main></el-container></el-container>
</div>

通过上面的代码我们就实现了原型图的布局方式。

2.2 菜单以及header

要实现菜单和header功能,我们要用到el-menu组件。el-menu是 Element Plus 中的导航菜单组件,广泛用于构建网站或应用中的侧边栏、顶部导航栏或其他菜单布局。它提供了丰富的功能来帮助开发者构建各种交互式菜单,支持嵌套、分组、图标、跳转等多种场景。通过el-menu开发者可以很容易地创建一个结构清晰且响应式的导航菜单。在实际使用中,el-menu可以与el-menu-itemel-submenu等子组件结合使用,来定义菜单项和子菜单。菜单项el-menu-item用于表示单个菜单项,而子菜单el-submenu则用于嵌套多个菜单项,通常用于实现多级菜单结构。每个菜单项都可以绑定一个index,并通过routerclick事件触发相应的路由跳转或功能操作。
比如我们现在要实现一个简单的顶部导航栏时,可以使用el-menu来承载菜单项。我们可以通过mode属性来指定菜单的布局方式,horizontal模式常用于顶部导航栏,而vertical模式常用于侧边栏导航。在水平模式下,菜单项会横向排列,适合放置在页面的顶部,而在垂直模式下,菜单项则会按竖直方向排列,通常用于侧边栏。下面是一个简单的侧边栏菜单示例:

<template><el-menu mode="vertical" default-active="1"><el-menu-item index="1">Home</el-menu-item><el-menu-item index="2">About</el-menu-item><el-submenu index="3"><template #title>Services</template><el-menu-item index="3-1">Web Development</el-menu-item><el-menu-item index="3-2">App Development</el-menu-item></el-submenu><el-menu-item index="4">Contact</el-menu-item></el-menu>
</template>

在上面的例子中el-menu设置为垂直模式mode="vertical",菜单项使用了el-menu-item,而el-submenu用于实现子菜单。每个菜单项都通过index来标识,在用户点击时会触发对应的事件。default-active用来设置默认选中的菜单项,通常是根据路由来动态更新这个值,以保持菜单的选中状态。
同时el-menu还支持动态高亮、图标、禁用项、折叠面板等多种功能。例如我们可以通过icon属性为菜单项添加图标,或者利用collapse属性控制菜单的展开和收起。它还能够结合 Vue Router 使用,实现与页面路由的绑定,自动切换菜单的选中状态。
下面我们就用el-menu实现原型的菜单和Header,我们在第一个el-header中设置header,代码如下:

<el-menu mode="horizontal" :ellipsis="false"><el-menu-item><imgstyle="width: 180px"src="/src/assets/logo.png"alt="Element logo"/></el-menu-item><el-sub-menu><template #title><el-avatar :size="40"/></template><el-menu-item @click="resetPasswordFormVisible=true">重置密码</el-menu-item><el-menu-item @click="securitySettingFormVisible=true">安全设置</el-menu-item><el-menu-item @click="personalInformationFormVisible=true">修改用户名</el-menu-item><el-menu-item @click="deleteUser">注销账户</el-menu-item><el-menu-item @click="logout">退出</el-menu-item></el-sub-menu>
</el-menu>

在上面代码中的重置密码、安全设置、修改用户名、注销账户以及退出功能在上一篇文章中我们以及实现了,这里就不讲解了。
在第二个el-header中我们把左侧菜单放在里面,代码如下:

<el-menudefault-active="2"id="mainMenu"
><el-menu-item index="1"><el-icon><location/></el-icon><template #title>首页</template></el-menu-item><el-menu-item index="2"><el-icon><Collection/></el-icon><template #title>账本</template></el-menu-item><el-menu-item index="3"><el-icon><PieChart/></el-icon><template #title>报表</template></el-menu-item><el-sub-menu index="4"><template #title><el-icon><setting/></el-icon><span>配置</span></template><el-menu-item-group><el-menu-item index="4-1">收支分类</el-menu-item><el-menu-item index="4-2">预算设置</el-menu-item><el-menu-item index="4-3">主币种设置</el-menu-item></el-menu-item-group></el-sub-menu>
</el-menu>

在上面的代码中,我们设置了这次要实现的功能,以及给每个大功能模块设置了icon。到目前为止我们就完成了首页UI的开发。

三、总结

在本节中,我们通过使用 Element Plus 的组件来实现个人中心的主页 UI。首先,原型图包括了左侧菜单和顶部 Header,菜单包含多个功能模块如首页、账本、报表等,Header 则包含了 Logo 和个人头像。为实现这个布局,我们使用了 el-container 布局组件,并配合 el-headerel-asideel-main 来实现响应式页面结构。同时,我们采用 el-menu 组件来构建左侧菜单和顶部导航栏,菜单项通过 el-menu-itemel-submenu 组件实现,支持嵌套和功能操作。最终,通过这些组件的组合,我们成功实现了一个功能齐全且响应式的主页 UI。

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

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

相关文章

Spring Boot 实例解析:从概念到代码

SpringBoot 简介&#xff1a; 简化 Spring 应用开发的一个框架整合 Spring 技术栈的一个大整合J2EE 开发的一站式解决方案优点&#xff1a;快速创建独立运行的 Spring 项目以及与主流框架集成使用嵌入式的 Servlet 容器&#xff0c;应用无需打成 war 包&#xff0c;内嵌 Tomcat…

精准化糖尿病知识问答(LLM+机器学习预测模型)

精准化糖尿病知识问答&#xff08;LLM机器学习预测模型&#xff09; 关键词&#xff1a;精准化&#xff1b;糖尿病&#xff08;慢病&#xff09; 这里主要是对APP部署途径的叙述&#xff0c;在这之前讨论两个问题&#xff1a; 慢性疾病适用什么样的预测模型。对于糖尿病等慢病…

本地部署DeepSeek

1、打开ollama,点击“Download” Ollamahttps://ollama.com/ 2、下载完成后&#xff0c;安装ollama.exe 3、安装完成后&#xff0c;按"windowsR",输入"cmd” 4、输入“ollama -v”&#xff0c;查看版本&#xff0c;表示安装成功 5、返回ollama网页&#xff0c…

“harmony”整合不同平台的单细胞数据之旅

其实在Seurat v3官方网站的Vignettes中就曾见过该算法&#xff0c;但并没有太多关注&#xff0c;直到看了北大张泽民团队在2019年10月31日发表于Cell的《Landscap and Dynamics of Single Immune Cells in Hepatocellular Carcinoma》&#xff0c;为了同时整合两类数据&#xf…

【后端开发】字节跳动青训营Cloudwego脚手架

Cloudwego脚手架使用 cwgo脚手架 cwgo脚手架 安装的命令&#xff1a; GOPROXYhttps://goproxy.cn/,direct go install github.com/cloudwego/cwgolatest依赖thriftgo的安装&#xff1a; go install github.com/cloudwego/thriftgolatest编辑echo.thrift文件用于生成项目&…

Flutter_学习记录_Tab的简单Demo~真的很简单

1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件&#xff1a; TabBarTabBarViewTabController 这一块&#xff0c;我也不知道怎么整理了&#xff0c;直接提供代码吧&#xff1a; import package:flutter/material.dart;void main() {runApp(MyApp());…

PyQt6医疗多模态大语言模型(MLLM)实用系统框架构建初探(上.文章部分)

一、引言 1.1 研究背景与意义 在数字化时代,医疗行业正经历着深刻的变革,智能化技术的应用为其带来了前所未有的发展机遇。随着医疗数据的指数级增长,传统的医疗诊断和治疗方式逐渐难以满足现代医疗的需求。据统计,全球医疗数据量预计每年以 48% 的速度增长,到 2025 年将…

华硕笔记本装win10哪个版本好用分析_华硕笔记本装win10专业版图文教程

华硕笔记本装win10哪个版本好用&#xff1f;华硕笔记本还是建议安装win10专业版。Win分为多个版本&#xff0c;其中家庭版&#xff08;Home&#xff09;和专业版&#xff08;Pro&#xff09;是用户选择最多的两个版本。win10专业版在功能以及安全性方面有着明显的优势&#xff…

Longformer:处理长文档的Transformer模型

Longformer&#xff1a;处理长文档的Transformer模型 摘要 基于Transformer的模型由于自注意力操作的二次复杂度&#xff0c;无法处理长序列。为了解决这一限制&#xff0c;我们引入了Longformer&#xff0c;其注意力机制与序列长度呈线性关系&#xff0c;使其能够轻松处理数…

第5章 公共事件

HarmonyOS通过公共事件服务为应用程序提供订阅、发布、退订公共事件的能力。 5.1 公共事件概述 在应用里面&#xff0c;往往会有事件。比如&#xff0c;朋友给我手机发了一条信息&#xff0c;未读信息会在手机的通知栏给出提示。 5.1.1 公共事件的分类 公共事件&#xff08…

(三)QT——信号与槽机制——计数器程序

目录 前言 信号&#xff08;Signal&#xff09;与槽&#xff08;Slot&#xff09;的定义 一、系统自带的信号和槽 二、自定义信号和槽 三、信号和槽的扩展 四、Lambda 表达式 总结 前言 信号与槽机制是 Qt 中的一种重要的通信机制&#xff0c;用于不同对象之间的事件响…

【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)

本文项目编号 T 165 &#xff0c;文末自助获取源码 \color{red}{T165&#xff0c;文末自助获取源码} T165&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

three.js+WebGL踩坑经验合集(6.1):负缩放,负定矩阵和行列式的关系(2D版本)

春节忙完一轮&#xff0c;总算可以继续来写博客了。希望在春节假期结束之前能多更新几篇。 这一篇会偏理论多一点。笔者本没打算在这一系列里面重点讲理论&#xff0c;所以像相机矩阵推导这种网上已经很多优质文章的内容&#xff0c;笔者就一笔带过。 然而关于负缩放&#xf…

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐&#xff0c;蛇年吉祥&#xff01; 《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0…

AutoDL 云服务器:xfce4 远程桌面 终端乱码 + 谷歌浏览器

/usr/bin/google-chrome-stable --no-sandbox --proxy-server"127.0.0.1:7890" 打开新的PowerShell ssh -p 54521 rootconnect.yza1.seetacloud.com /opt/TurboVNC/bin/vncserver -kill :1 rm -rf /tmp/.X1* USERroot /opt/TurboVNC/bin/vncserver :1 -desktop …

Contrastive Imitation Learning

机器人模仿学习中对比解码的一致性采样 摘要 本文中&#xff0c;我们在机器人应用的对比模仿学习中&#xff0c;利用一致性采样来挖掘演示质量中的样本间关系。通过在排序后的演示对比解码过程中&#xff0c;引入相邻样本间的一致性机制&#xff0c;我们旨在改进用于机器人学习…

DeepSeek 遭 DDoS 攻击背后:DDoS 攻击的 “千层套路” 与安全防御 “金钟罩”

当算力博弈升级为网络战争&#xff1a;拆解DDoS攻击背后的技术攻防战——从DeepSeek遇袭看全球网络安全新趋势 在数字化浪潮席卷全球的当下&#xff0c;网络已然成为人类社会运转的关键基础设施&#xff0c;深刻融入经济、生活、政务等各个领域。从金融交易的实时清算&#xf…

【二叉搜索树】

二叉搜索树 一、认识二叉搜索树二、二叉搜索树实现2.1插入2.2查找2.3删除 总结 一、认识二叉搜索树 二叉搜索树&#xff08;Binary Search Tree&#xff0c;简称 BST&#xff09;是一种特殊的二叉树&#xff0c;它具有以下特征&#xff1a; 若它的左子树不为空&#xff0c;则…

FreeRTOS学习 --- 中断管理

什么是中断&#xff1f; 让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断 中断执行机制&#xff0c;可简单概括为三步&#xff1a; 1&#xff0c;中断请求 外设产生中断请求&#xff08;GPIO外部中断、定时器中断…

使用 Ollama 和 Kibana 在本地为 RAG 测试 DeepSeek R1

作者&#xff1a;来自 Elastic Dave Erickson 及 Jakob Reiter 每个人都在谈论 DeepSeek R1&#xff0c;这是中国对冲基金 High-Flyer 的新大型语言模型。现在他们推出了一款功能强大、具有开放权重的思想链推理 LLM&#xff0c;这则新闻充满了对行业意味着什么的猜测。对于那些…