大數據畢業設計之前端02:架構布局和aside的設計

前言

上一篇主要講了我學習前端的一個經歷,以及為什么選擇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等技術。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208368.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode每日一題37

92.反轉鏈表II 這道題需要1.找到位置left 2.在位置left開始&#xff0c;一前一后兩個指針反轉鏈表&#xff0c;代碼同206.反轉鏈表&#xff0c;直到后一個指針指向right 3.把反轉后的頭節點鏈接到left-1后面&#xff0c;把反轉后的鏈表尾節點指向right1位置的節點 因為可能會反…

數據結構——二叉樹的鏈式結構

個人主頁&#xff1a;日刷百題 系列專欄&#xff1a;〖C語言小游戲〗〖Linux〗〖數據結構〗 〖C語言〗 &#x1f30e;歡迎各位→點贊&#x1f44d;收藏??留言&#x1f4dd; ? 一、二叉樹的創建 這里我們使用先序遍歷的思想來創建二叉樹&#xff0c;這里的內容對于剛接觸二…

iClient3D 加載天地圖服務

1 對國家天地圖&#xff0c;通過TiandituImageryProvider影像服務提供者加載地圖&#xff1b; var TiandituimageryLayernew Cesium.TiandituImageryProvider({ mapStyle: Cesium.TiandituMapsStyle[value],token: "4a00a1dc5387b8ed8adba3374bd87e5e"})viewer.imag…

nginx 的概念、高并發處理及詳細參數配置

NGINX是一個開源的高性能Web服務器&#xff0c;負載均衡器和反向代理服務器。它特別適用于高并發的Web應用&#xff0c;能夠有效地處理數千并發連接&#xff0c;同時具備低資源消耗和高性能的特點。在這里&#xff0c;我將重點介紹NGINX的高并發處理能力和參數配置。 高并發處…

云原生(Cloud Native)——概念,技術,背景,優缺點,實踐例子

云原生&#xff08;Cloud Native&#xff09;是一種構建和運行應用程序的方法&#xff0c;這些應用程序充分利用云計算的優勢。云原生應用程序通常設計為在現代、動態的環境中運行&#xff0c;如公共云、私有云和混合云。這種方法強調微服務架構、容器化、自動化、易于管理和可…

QT 信號與槽 connect 三種寫法

先看下示例&#xff1a; QPushButton *btn new QPushButton;// 方式一&#xff1a;老式寫法connect(btn, SIGNAL(clicked()), this, SLOT(close()));// 方式二&#xff1a;Qt5后新寫法connect(btn, &QPushButton::clicked, this, &MainWindow::close);// 方式三&#…

Word插件-好用的插件-一鍵設置字體--大珩助手

常用字體 整理了論文、公文常用字體 整理了常用的論文字體&#xff0c;可一鍵設置當前節或選擇的文字的字體 字體設置 包含字體選擇、字體顏色 特殊格式 包含首字下沉、段落分欄、統一寬度、雙行合一、上標切換、下標切換、轉為全角、轉為半角、挖詞填空、當前日期、大寫金…

LabVIEW開發遠程結構健康監測系統

LabVIEW開發遠程結構健康監測系統 工程師依賴于振動監測來評估建筑物、橋梁和其他大型結構的完整性。傳統的振動監測工具在數據收集上存在限制&#xff0c;無法長時間收集高保真波形。隨著內存存儲、處理器速度和寬帶無線通信技術的進步&#xff0c;出現了對能夠長時間收集并實…

Navicat 技術指引 | 適用于 GaussDB 分布式的查詢功能

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結…

深入了解對象與內置構造函數

1. 深入對象 1.1 創建對象的三種方式 1.2 構造函數 語法約定&#xff1a; 總結 構造函數可以快速創建多個對象大寫字母開頭的函數使用new關鍵字將對象實例化構造函數不需要返回值自動返回新的對象 new實例化的執行過程 創建空對象this指向對象執行代碼&#xff0c;追加新…

使用wire重構商品微服務

一.wire簡介 Wire 是一個輕巧的Golang依賴注入工具。它由Go Cloud團隊開發&#xff0c;通過自動生成代碼的方式在編譯期完成依賴注入。 依賴注入是保持軟件 “低耦合、易維護” 的重要設計準則之一。 此準則被廣泛應用在各種開發平臺之中&#xff0c;有很多與之相關的優秀工…

使用pyftpdlib組件實現FTP文件共享

目錄 一、引言 二、技術背景 三、實現邏輯 1、創建FTP服務器&#xff1a; 2、實現文件共享&#xff1a; 3、設置用戶權限&#xff1a; 4、處理異常&#xff1a; 5、優化與擴展&#xff1a; 四、代碼實現 五、測試與評估 測試用例&#xff1a; 評估方法&#xff1a;…

React/Vue/Svelte 前端項目中開始使用TailwindCSS

背景 TailwindCSS 近年來在前端圈非常流行&#xff0c;它擺脫了原有的CSS限制&#xff0c;以靈活實用為賣點&#xff0c;用戶通過各種class組合即可構建出漂亮的用戶界面。對于初學者而言&#xff0c;可能需要一些上手成本&#xff0c;一旦掌握實用技巧后&#xff0c;Tailwind…

Unity中Batching優化的GPU實例化整理總結

文章目錄 前言一、GPU Instancing的支持1、硬件支持2、Shader支持3、腳本支持 二、我們來順著理一下GPU實例化的使用步驟1、GPU實例化前的C#代碼準備2、在 appdata 和 v2f 中定義GPU實例化ID3、在頂點著色 和 片元著色器 設置GPU Instance ID&#xff0c;使實例化對象頂點位置正…

Docker的資源控制

Docker的資源控制&#xff1a; 對容器使用宿主機的資源進行限制。 CPU 內存 磁盤I/O(讀寫性能) docker使用linux自帶的功能cgroup control groups是linux內核系統提供的一種可以限制&#xff0c;記錄&#xff0c;隔離進程組所使用的物理資源的一種機制。 docker借助這個機制…

go grpc高級用法

文章目錄 錯誤處理常規用法進階用法原理 多路復用元數據負載均衡壓縮數據 錯誤處理 gRPC 一般不在 message 中定義錯誤。畢竟每個 gRPC 服務本身就帶一個 error 的返回值&#xff0c;這是用來傳輸錯誤的專用通道。gRPC 中所有的錯誤返回都應該是 nil 或者 由 status.Status 產…

如何克服微服務測試的挑戰,并最大化收益

多年來&#xff0c;微服務一直是行業趨勢&#xff0c;但組織卻未能從該方法中獲益&#xff0c;并因發布失敗而苦苦掙扎。這些失敗通常歸結為測試服務之間的接口以獲得預期的質量、安全性和性能的困難。 最終&#xff0c;未能以足夠穩健的方式測試這些 API。一線希望是遺留 SOA…

cookie總結

cookie和session&#xff1a; 一、Cookie和Session二、使用Cookie保存用戶上次的訪問時間。三、Cookie常用方法總結亂碼問題解決&#xff1a; 一、Cookie和Session 會話&#xff1a;用戶從打開瀏覽器到關閉的整個過程就叫1次會話。 比如有的網站登錄過一次&#xff0c;下次再進…

Gitleaks - 一款高效的Github倉庫敏感信息泄露查詢工具

Gitleaks - 一款高效的Github倉庫敏感信息泄露查詢工具 1.工具概述2.安裝3.參數解析4.使用1.工具概述 Gitleaks 是一種 SAST 工具,用于檢測和防止 git 存儲庫中的硬編碼機密,如密碼、API 密鑰和令牌 Gitleaks 是一個開源工具,用于檢測和防止簽入 Git 存儲庫的機密(密碼/A…

使用 Kubernetes 為 CI/CD 流水線打造高效可靠的臨時環境

介紹 在不斷發展的科技世界中&#xff0c;快速構建高質量的軟件至關重要。在真實環境中測試應用程序是及早發現和修復錯誤的關鍵。但是&#xff0c;在真實環境中設置 CI/CD 流水線進行測試可能既棘手又昂貴。 Kubernetes 是一個流行的容器編排平臺&#xff0c;提供臨時環境解決…