大数据毕业设计之前端02:架构布局和aside的设计

2023-12-16

前言

上一篇主要讲了我学习前端的一个经历,以及为什么选择BuildAdmin作为深入前端学习的原因.同事也大致聊了一下学习前端需要使用哪些技术栈。

本篇文章来拆解一下BuildAdmin的前端代码结构,和布局实现的细节。

前端代码结构

必须先了解项目的结构,才能明确每个功能模块的代码在哪写。BuildAdmin前端目录如下,我只对一级目录进行了粗略的标注,详细的可以去官网看。

在本地需要使用vue-cli脚手架来构建项目,在构建时会有很多选项,包括使用的vue版本和各种插件。

npm install -g @vue/cli
vue create buildadmin

创建之后,基本的目录结构就出来了,后续就可以在各个功能目录添加子目录和模块。

环境安装

在创建好项目之后,还需要安装一些额外的依赖,例如sass、bable等。

1. 安装sass
npm i sass sass-loader
2. 安装babel

babel的主要功能那是将ES语法转换成浏览器识别的js

npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node @babel/polyfill
3. 安装babel,使用可选链?.

在BuildAdmin中,有很多时候都会出现 ?. ,这便是防止出现空指针异常的可选链写法,原则就是:有就用,没有就不用。

假设一个对象obj,没有name属性。如果obj.name则会报空指针错误,如果使用obj?.name则输出的是obj。

npm install --save-dev @babel/plugin-proposal-optional-chaining

4. 关闭lint

lint会检查编码中格式的错误,我个人不是很喜欢,所以我会在 vue.config.js 中关掉。

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false
})

任何一个vue项目都是从 main.ts 开始,按照层级开始编写各个组件。而App.vue中作为第一个节点,引入整体的布局组件。

架构布局

BuildAdmin作为一个管理平台,首先要完成布局部分。我们先看BuildAdmin的布局:

可以看到BuildAdmin的整体布局是由:菜单边栏aside、导航header和中心区域main组成的。即ElementPlus中的aside、header、main布局。

这就是官网的代码。

布局实现

从App.vue作为根节点,开始绑定组件。

<layout>就是定义的整个布局。

上面是我从Element的官网copy的布局代码。BuildAdmin在实现布局时,将aside、header、main都拆分成了单独的组件,如下图所示:

后面我也拆分了的布局代码,将aside、header和main拆分成了三个组件,这样便于阅读、定义css和实现js逻辑等。。

要注意的事,拆分成三个组件之后,在css中需要添加一个 flex-direction 属性,在拆分之间是没有的。答案在官网中给出来了:如 果<el-container>里如果有el-header元素,则会默认为垂直排列

后面的拆分,el-header被封装成Header组件了。el-container里面就没有el-header元素了,所以就变成水平分布,这样header就在main的就布局在同一水平线上了,而非上下排列。为了保证上下排列,则必须将此属性设置为 column

实现思路

在将页面拆分成三个部分之后,就需要定义css渲染,来确定各个部分的区域大小和样式。header主要用来渲染面包屑标签,所以暂时先不定义这一块的样式。之后会根据导航标签大小和页面布局调整高和宽,即height和width。

main主要展示各个菜单路由切换后的页面,只要确定height和width即可,这个可以后面实现完路由再调整。所以根据开发需要,可以先实现aside的样式。

aside渲染

aside.vue中此时只有一个<el-aside>元素,此时我们需要定义它的css样式。

1. css

在style中定义css时,指定sass为css预处理器。

v-bind是vue3中的新用法。其中的 menuWidth 参数是pinia定义的状态变量,为260px。这里为什么要使用v-bind,而不是直接写260呢?因为aside的宽度是变化的,因为后面菜单折叠需要动态修改宽度,所以这里不能写死。

而且因为菜单栏要放在aside中,且宽度一致,所以直接使用一个变量方便同步控制。 那至于为什么定义成260 ,接着往下看。

那么, css中这些var里面的–开头的变量是哪里来的啊? 这些其实就是el和自定义全局变量,在控制台都可以查看到。

其中–ba开头的,是BuildAdmin在var.scss中自定义的全局变量。

2. 开发技巧

如果不知道组件的css在哪里定义的,就可以在控制台查看。

可以看到aside的样式:margin上下都是16px,所以上下共有32px。 32px + height = 100% ,所以aside的height就是 100vh-32px ?同时,也可以看到width是260px。

3. 渲染效果

至此aside就渲染好了。

虽然现在看起来也没什么变化,但是添加完logo和菜单之后,就会大有不同。

结语

第二篇开篇主要讲了项目的创建和环境变量的安装。后面阐述了边栏aside的设计思路,以及对css的定义和解读。只涉及了基本的vue和ElementUI的使用。

同时,本篇文章提及的控制台查看属性的技巧,下一篇主要讲的菜单渲染,将会涉及vue-router等技术。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据毕业设计之前端02:架构布局和aside的设计 的相关文章

随机推荐

  • 中断管理学习

    中断管理 什么是中断 简单的解释就是系统正在处理某一个正常事件 忽然被另一个需要马上处理的紧急事件打断 系统转而处理这个紧急事件 待处理完毕 再恢复运行刚才被打断的事件 生活中 我们经常会遇到这样的场景 当你正在专心看书的时候 忽然来了一个
  • MacBook电脑内存容量小根本不够用?如何一键解决?

    得益于M1系列芯片的强势表现 很多朋友都换用了MacBook 首次接触到了macOS系统 但出乎意料的是 很多人就开始受罪了 明明这么出色的硬件 为何到处都不顺手呢 尤其是容量 MacBook相比同价位的Windows笔记本 硬盘本来就偏小
  • FL Studio21最新FL水果编曲软件中文版在哪下载?

    FL Studio21水果编曲软件是一款专业的音乐制作软件 被广泛地应用于电子音乐 hip hop 流行乐等多种音乐类型的制作 该软件提供了丰富的音频编曲工具和音乐效果器 让用户可以轻松地创作出高品质的音乐作品 同时 这也是一款非常易于上手
  • CleanMyMac X2024(Mac优化清理工具)v4.14.5中文版

    CleanMyMac X是一款颇受欢迎的专业清理软件 拥有十多项强大的功能 可以进行系统清理 清空废纸篓 清除大旧型文件 程序卸载 除恶意软件 系统维护等等 并且这款清理软件操作简易 非常好上手 特别适用于那些刚入手苹果系统的宝宝们 只需两
  • flstudio21.3.2304高级版水果编曲音乐软件

    flstudio高级版是一款适用于广泛领域的音频编辑软件 它支持多通道混音器和VST插件 包括数百种乐器和效果插件 它还为您提供了一个乐谱编辑器 需要对不同乐器的节奏进行必要的编辑 Flstudio具有许多内置电子合成声音 可提供更广泛的电
  • fl studio2024水果21.3免费汉化版

    fl studio2024全称Fruity Loops Studio2024 这款软件也被人们亲切的称之为水果 它是一款功能强大的音乐创作编辑软件 拥有全功能的录音室 大混音盘以及先进的音乐制作工具 用户通过使用该软件 就可以轻松制作出自己
  • 【408】计算机学科专业基础 - 计算机组成原理

    一 计算机系统概述 复习提示 本章是组成原理的概述 考查时易针对有关概念或性能指标出选择题 也可能综合后续章节的内容出有关性能分析的综合题 掌握本章的基本概念 是学好后续章节的基础 部分知识点在初学时理解不深刻也无须担忧 相信随着后续章节的
  • 汽车EDI:Chrysler EDI项目案例

    菲亚特克莱斯勒汽车Fiat Chrysler Automobiles FCA 是一家全球性汽车制造商 主营产品包括轿车 SUV 皮卡车 商用车和豪华车等多种车型 其旗下品牌包括菲亚特 克莱斯勒 道奇 Jeep Ram 阿尔法 罗密欧和玛莎拉
  • 物流EDI:COSCO的EDI对接

    当产品的原产地和最终目的地之间以及生产商和分销商之间实现了即时 安全和高效通信 意味着业务已经取得成功 无论是在物理层面的货物运输 还是在数据层面的信息交互 物流在供应链中都是至关重要的一环 物流发展进程的加快能够促进供应链各个环节实现完美
  • 解决 vue3 使用mitt(发布订阅库)时,多次触发事件订阅问题

    问题起源 在日常vue项目开发中 有时会用到mitt 前身事件总线mittBus 进行事件传递 然而使用经常就是mitt emit mitt on 就结束了 未考虑到取消订阅事件 订阅事件会创建回调函数 并将其添加到事件总线中 如果在实例卸
  • MyBatis——Java 持久层框架

    文章目录 MyBatis 是什么 准备工作 创建一个数据库和表 引入依赖 配置连接字符串和 MyBatis MyBatis 组成 MyBatis 使用步骤 定义一个类
  • VSCode中如何查看EDI报文?

    VSCode是开发人员常用的一款软件 为了降低EDI报文的阅读门槛 知行的开发人员设计了EDI插件 可以在VSCode中下载使用 如何打开一个EDI报文 VSCode EDI插件介绍 EDI插件下载流程 进入VSCode 打开Extensi
  • 【腾讯云AI绘画】与AI绘画和解,和AI绘画共成长

    前言 六月份的时候 买了腾讯AI绘画的资源包 可当通过API去使用AI绘画后 我顿时就被整破防了 于是写了一篇文章 算是无声控诉 被腾讯云AI绘画整破防了 再回首 腾讯绘画不仅提供了API调用 还构建了 智能图像创作平台 用于提供AI绘画在
  • Spring MVC

    文章目录 Spring MVC 是什么 什么是 MVC 如何学习 Spring MVC Spring MVC 创建和连接 获取参数 传统方式 简便的方式 获取一个自定义类的对象 从 json 字符
  • 快速入手 vue3 defindeModel 双向绑定数据,赶快了解下

    彩蛋 在vue3 3x 版本中 官方 RFC 放出了 一个新特性 defineModel 它将让我们在自定义组件上双向绑定数据更加快捷 举个 以前我们父子组件双向数据绑定要在子组件里声明对应的props emts computed 子组件
  • 前端非常好用的免费网页工具推荐(值得收藏)

    1 iloveimg 可在线进行图片编辑 压缩 转换等功能 操作方便 完全免费 2 草料二维码 可在线进行文本 网站 文件 图片 微信等二维码生成 3 比特虫 在线制作网站 ico 图标 4 facicongrabber 免费网页 favi
  • Daimler EDI 项目案例

    戴姆勒Daimler包括梅赛德斯 奔驰汽车 梅赛德斯 奔驰轻型商用车 戴姆勒载重车和戴姆勒金融服务等四大业务单元 戴姆勒Daimler早在1983年就开始使用EDI电子数据交换了 EDI那时还是数据交互一个新兴技术 如今早已成为商业往来中一
  • 如何通过EDI向Daimler发送发票?

    此前的文章 Daimler EDI 项目案例 中 我们已经成功对接Daimler 接下来我将为大家介绍如何将发票由Daimler的发票系统切换至EDI EDI需求背景 在Daimler的前期需求中 只涉及到了VDA4905交付预测以及VDA
  • 大数据毕业设计之前端03:logo、menu的折叠展开实现

    关键字 BuildAdmin pinia logo aside menu 菜单折叠 Vue ElementUI 前言 上一篇文章中 借助aside的实现讲了一些开发的小技巧 以及css的解读 本篇文章主要写一下如何填充aside的内容 as
  • 大数据毕业设计之前端02:架构布局和aside的设计

    前言 上一篇主要讲了我学习前端的一个经历 以及为什么选择BuildAdmin作为深入前端学习的原因 同事也大致聊了一下学习前端需要使用哪些技术栈 本篇文章来拆解一下BuildAdmin的前端代码结构 和布局实现的细节 前端代码结构 必须先了