Tlias 案例-整體布局(前端)

開發流程

前端開發和后端開發是一樣的,都需要閱讀接口文檔。?

準備工作:?

?1:導入項目中準備的基礎過程到 VsCode。

2:啟動前端項目,訪問該項目

3:熟悉一下基本的布局

<script setup></script><template><div class="common-layout"><el-container><!-- Header 區域 --><el-header class="header"><span class="title">Tlias智能學習輔助系統</span><span class="right_tool"><a href=""><el-icon><EditPen /></el-icon> 修改密碼 &nbsp;&nbsp;&nbsp; |  &nbsp;&nbsp;&nbsp;</a><a href=""><el-icon><SwitchButton /></el-icon> 退出登錄</a></span></el-header><el-container><!-- 左側菜單 --><el-aside width="200px" class="aside">左側菜單欄</el-aside><el-main>右側核心展示區域</el-main></el-container></el-container></div>
</template><style scoped>
.header {background-image: linear-gradient(to right, #00547d, #007fa4, #00aaa0, #00d072, #a8eb12);
}.title {color: white;font-size: 40px;font-family: 楷體;line-height: 60px;font-weight: bolder;
}.right_tool{float: right;line-height: 60px;
}a {color: white;text-decoration: none;
}.aside {width: 220px;border-right: 1px solid #ccc;height: 730px;
}
</style>

<el - container> :外部容器

<el - header>:頂欄容器

<el - aside>:側邊欄容器

<el - main>:主要區域容器

<el - footer>:底欄容器

左端動態菜單

我們首先實現這個菜單的基本樣子

<!-- 左側菜單欄 -->
<el-menu><!-- 首頁菜單 --><el-menu-item index="/index"><el-icon><Promotion /></el-icon> 首頁</el-menu-item><!-- 班級管理菜單 --><el-sub-menu index="/manage"><template #title><el-icon><Menu /></el-icon> 班級學員管理</template><el-menu-item index="/clazz"><el-icon><HomeFilled /></el-icon>班級管理</el-menu-item><el-menu-item index="/stu"><el-icon><UserFilled /></el-icon>學員管理</el-menu-item></el-sub-menu><!-- 系統信息管理 --><el-sub-menu index="/system"><template #title><el-icon><Tools /></el-icon>系統信息管理</template><el-menu-item index="/dept"><el-icon><HelpFilled /></el-icon>部門管理</el-menu-item><el-menu-item index="/emp"><el-icon><Avatar /></el-icon>員工管理</el-menu-item></el-sub-menu><!-- 數據統計管理 --><el-sub-menu index="/report"><template #title><el-icon><Histogram /></el-icon>數據統計管理</template><el-menu-item index="/empReport"><el-icon><InfoFilled /></el-icon>員工信息統計</el-menu-item><el-menu-item index="/stuReport"><el-icon><Share /></el-icon>學員信息統計</el-menu-item><el-menu-item index="/log"><el-icon><Document /></el-icon>日志信息統計</el-menu-item></el-sub-menu>
</el-menu>

?

?然后我們實現其動態效果,(點哪就跳轉到其對應的頁面),我們要用到 Vue Router。

?

Vue Router 介紹:

Vue Router:Vue 的官方路由。為 Vue 提供富有表現力,可配置的,方便的路由

Vue 中的路由:路徑組件 的對應關系。

組成:
Router 實例:路由實例,基于 createRouter 函數創建,維護了應用的路由信息。

<router - link>:路由鏈接組件,瀏覽器會解析成 <a>(超鏈接)。

<router - view>:動態視圖組件,用來渲染與展示與路由路徑對應的組件

我們如果要用這玩意的話,在創建 Vue 工程的時候記得選 Yes。?

?

我們接下來正式開始實現:
首先我們要完成的功能是:點擊對應菜單訪問對應路徑,這個功能很好實現,只需要在

<el menu> 這個標簽中,將 router 設置為 true 即可。

<el-menu router = "true">

具體原理,可以看一下官方給的文檔

?

下一步我們就要展示與這個 路徑 對應的 組件了。在 router/index.js 下配置

import { createRouter, createWebHistory } from 'vue-router'
import ClazzView from '../views/clazz/index.vue'
import DeptView from '../views/dept/index.vue'
import EmpView from '../views/emp/index.vue'
import IndexView from '../views/index/index.vue'
import LayoutView from '../views/layout/index.vue'
import LogView from '../views/log/index.vue'
import LoginView from '../views/login/index.vue'
import EmpReportView from '../views/report/emp/index.vue'
import stuReportView from '../views/report/stu/index.vue'
import StuView from '../views/student/index.vue'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{ path: '/index', name: 'index',component: IndexView },{ path: '/login', name: 'login',component: LoginView },{ path: '/log', name: 'log',component: LogView },{ path: '/layout', name: 'layout',component: LayoutView },{ path: '/clazz', name: 'clazz',component: ClazzView },{ path: '/emp', name: 'emp',component: EmpView },{ path: '/empReport', name: 'empReport',component: EmpReportView },{ path: '/stuReport', name: 'stuReport',component: stuReportView },{ path: '/dept', name: 'dept',component: DeptView },{ path: '/stu', name: 'stu',component: StuView },]
})export default router

?注意這里的 name 不要重名了,不然會沖突出 bug。

最后我們要把組件展示在我們要求它展示的地方,也就是在我們要展示的地方放上我們的 路由展示組件,這里我們展示到右側。

        <el-main><!-- 右側核心展示區域 --><router-view></router-view></el-main>

?

這里還有個 bug,就是我們的登錄頁面也會展示到右測的區域,因為我們在 App.vue 里把 Layout 寫死了,我們這里直接用路由展示組件

<script setup>
//引入views/layout/index.vue命名為Layout
import Layout from "@/views/layout/index.vue";
</script><template><router-view></router-view>
</template><style scoped></style>

但是這個登錄界面的 bug 解決了,我們登錄之后的界面又出現了 bug,我們會發現本該展示在右邊的界面占領了整個界面,我們甚至連左側的菜單都看不見了,要解決這個問題,我們需要用到一個新技術 -- 路由嵌套

import { createRouter, createWebHistory } from 'vue-router'
import ClazzView from '../views/clazz/index.vue'
import DeptView from '../views/dept/index.vue'
import EmpView from '../views/emp/index.vue'
import IndexView from '../views/index/index.vue'
import LayoutView from '../views/layout/index.vue'
import LogView from '../views/log/index.vue'
import LoginView from '../views/login/index.vue'
import EmpReportView from '../views/report/emp/index.vue'
import stuReportView from '../views/report/stu/index.vue'
import StuView from '../views/stu/index.vue'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',name: '',component: LayoutView,redirect: '/index', // 重定向到首頁(當我路徑為空的時候)children:[{ path: 'index', name: 'index',component: IndexView },{ path: 'log', name: 'log',component: LogView },{ path: 'layout', name: 'layout',component: LayoutView },{ path: 'clazz', name: 'clazz',component: ClazzView },{ path: 'emp', name: 'emp',component: EmpView },{ path: 'empReport', name: 'empReport',component: EmpReportView },{ path: 'stuReport', name: 'stuReport',component: stuReportView },{ path: 'dept', name: 'dept',component: DeptView },{ path: 'stu', name: 'stu',component: StuView },]},{ path: '/login', name: 'login',component: LoginView },]
})export default router

代碼還是比較好理解的,就是將除了 登錄部分的路由和組件 都寫到一個 children 集合里,這樣當我們訪問到 ' / ' 的時候,就會先展示我們的整體布局 LayoutView,然后會進入我們的 children 集合里展示我們訪問的 path 和對應的 component。

?

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

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

相關文章

三十二、【Linux網站服務器】搭建httpd服務器演示虛擬主機配置、網頁重定向功能

httpd服務器功能演示一、虛擬主機配置虛擬主機技術全景虛擬主機目錄規范1. 基于端口的虛擬主機&#xff08;8080/8081&#xff09;2. 基于IP的虛擬主機&#xff08;192.168.1.100/192.168.1.101&#xff09;3. 基于域名的虛擬主機&#xff08;site1.com/site2.com&#xff09;二…

串行化:MYSQL事務隔離級別中的終極防護

在現代應用程序中&#xff0c;數據的一致性和可靠性至關重要。想象一下&#xff0c;如果在一個銀行系統中&#xff0c;兩個用戶同時試圖轉賬到同一個賬戶&#xff0c;最終的數據結果可能會出乎意料。為了避免這種情況&#xff0c;MYSQL提供了不同的事務隔離級別&#xff0c;其中…

RAG:檢索增強生成的范式演進、技術突破與前沿挑戰

1 核心定義與原始論文 RAG&#xff08;Retrieval-Augmented Generation&#xff09;由Facebook AI Research團隊于2020年提出&#xff0c;核心思想是將參數化記憶&#xff08;預訓練語言模型&#xff09;與非參數化記憶&#xff08;外部知識庫檢索&#xff09;結合&#xff0c…

2024年藍橋杯Scratch10月圖形化stema選拔賽真題——旋轉的圖形

旋轉的圖形編程實現旋轉的圖形。具體要求1&#xff09;點擊綠旗&#xff0c;在舞臺上出現滑桿形式的變量 r&#xff0c;取值范圍為-1、0、1&#xff0c;默認值為 0&#xff0c;如圖所示&#xff1b;2&#xff09;1秒后&#xff0c;在舞臺上繪制出一個紅色正方形&#xff08;邊長…

【音視頻】WebRTC 開發環境搭建-Web端

一、開發環境搭建 1.1 安裝vscode 下載VSCode&#xff1a;https://code.visualstudio.com/&#xff0c;下載后主要用于開發Web前端頁面&#xff0c;編寫前端代碼 安裝完成后下載Live Server插件&#xff0c;用于本地開發&#xff0c;實時加載前端頁面 1.1.1 前端代碼測試 下…

力扣54:螺旋矩陣

力扣54:螺旋矩陣題目思路代碼題目 給你一個 m 行 n 列的矩陣 matrix &#xff0c;請按照 順時針螺旋順序 &#xff0c;返回矩陣中的所有元素。 思路 思路很簡單創建一個二維數組然后按照箭頭所示的順序一層一層的給二維數組相應的位置賦值即可。難點是我們是一層一層的賦值…

【CSS】設置表格表頭固定

1.設置thead樣式在thead元素中增加樣式&#xff1a;position: sticky;top: 0;2.設置table樣式在table元素中增加樣式&#xff1a;border-collapse: separate; /* 分離邊框模式 */ border-spacing: 0;3.設置表頭偽元素樣式增加樣式&#xff1a;th::after {content: ;position: a…

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現標簽條碼一維碼的檢測(C#代碼,UI界面版)

Baumer工業相機堡盟工業相機如何通過YoloV8深度學習模型實現標簽條碼一維碼的檢測&#xff08;C#代碼&#xff0c;UI界面版&#xff09;&#xff09;工業相機使用YoloV8模型實現標簽條碼一維碼的檢測工業相機通過YoloV8模型實現標簽條碼的檢測的技術背景在相機SDK中獲取圖像轉換…

如何編寫好的測試用例?

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快對于軟件測試工程師來說&#xff0c;設計測試用例和提交缺陷報告是最基本的職業技能。是非常重要的部分。一個好的測試用例能夠指示測試人員如何對軟件進行測試。在…

《Java 程序設計》第 12 章 - 異常處理

大家好&#xff01;今天我們來學習《Java 程序設計》中的第 12 章 —— 異常處理。在編程過程中&#xff0c;錯誤和異常是不可避免的。一個健壯的程序必須能夠妥善處理各種異常情況。本章將詳細介紹 Java 中的異常處理機制&#xff0c;幫助大家編寫出更穩定、更可靠的 Java 程序…

STM32CubeIDE新建項目過程記錄備忘(二) GPIO輸出demo:LED閃爍

利用前面創建好的基礎模板項目文件&#xff0c;創建第一個應用項目&#xff0c;單片機的hello world&#xff1a;LED閃爍。打開模板文件文件--從文件系統中打開項目&#xff1a;在彈出的窗口中選擇之前創建的模板項目文件并打開。復制粘貼新項目 在項目管理器&#xff0c;復制之…

HTML基礎P2 | JS基礎講解

什么是JS JS是一個網頁的腳本語言&#xff0c;你可以理解為在HTML中寫類似于JAVA等高級編程語言的代碼&#xff0c;使得網頁可以實現一些包含邏輯處理的交互操作 簡單上手例子 接下來&#xff0c;給大家一個簡單的小例子來感受一下 <!DOCTYPE html> <html lang&qu…

QT筆記(2)——vscode + CMAKE + qtcreate的操作方式

1.vscode 下載cmake&#xff0c;clangd&#xff0c;qtConfigure&#xff0c;cmake tool的相關插件支持 2. qtConfigure插件配置 根據自己下載的qt目錄下尋找如圖的相關工具 3. qt環境變量配置 在系統變量的path中添加qt編譯需要的環境變量。 4.下載Cmake支持 CMake下…

sed編程入門

一.sed是啥sed&#xff08;流編輯器&#xff0c;Stream Editor&#xff09;是 Unix/Linux 系統中強大的文本處理工具&#xff0c;常用于對文本進行替換、刪除、插入、追加等操作。它逐行處理輸入文本&#xff0c;并根據提供的腳本命令修改文本&#xff0c;最后輸出結果。二.基本…

知識速查大全:python面向對象基礎

目錄 一、面向對象的基本概念 二、類和對象 1.類 2.對象 三、屬性&#xff08;數據&#xff09;和方法 1.數據 1.1.實例數據 1.2.類數據 2.方法 2.1.實例方法 2.2.類方法 3.數據和方法的綜合使用 四、面向對象三大特性 1.封裝 2.繼承 2.1.單繼承 2.2.多繼承 2.3.混合類 2.4.方法…

Linux系統編程Day1-- 免費云服務器獲取以及登錄操作

一、 學生黨如何“白嫖”或免費使用云服務器&#xff1f; 作為學生黨&#xff0c;資金有限的情況下確實不容易長期負擔服務器費用。但好消息是&#xff0c;有多種方式可以“白嫖”或低成本使用云服務器&#xff0c;尤其是針對學生身份、學習用途和開發者計劃。 1、使用各大云平…

15.11 單卡訓練770M參數模型!DeepSpeed ZeRO-3實戰:RTX 4090顯存直降6.8GB

單卡訓練770M參數模型!DeepSpeed ZeRO-3實戰:RTX 4090顯存直降6.8GB 實戰 DeepSpeed ZeRO-2 和 ZeRO-3 單機單卡訓練 為什么需要單機單卡訓練場景? 雖然 DeepSpeed 的 ZeRO 技術主要面向分布式訓練場景,但單機單卡訓練仍然具有重要實踐價值: 開發調試:在資源有限情況下…

HTTPS基本工作過程:基本加密過程

HTTPS基本工作過程&#xff1a;HTTPS只是HTTP的基礎上引入加密機制1.引入對稱加密首先&#xff0c;什么是對稱加密和非對稱加密&#xff1f;對稱加密&#xff1a;使用同一把密鑰加密解密非對稱加密&#xff1a;有兩把密鑰&#xff0c;為公鑰&#xff08;公開的&#xff09;和私…

ES 文件瀏覽器:多功能文件管理與傳輸利器

ES 文件瀏覽器是一款功能強大的文件管理器軟件&#xff0c;支持多種文件傳輸協議&#xff0c;能夠方便地管理手機、平板電腦和電腦中的文件。它不僅提供了豐富的文件管理功能&#xff0c;還支持多種設備之間的文件傳輸&#xff0c;滿足用戶在不同場景下的需求。 核心功能 1. 文…

github-idea新建文件就要彈窗提醒-如何關閉-2025.7.30

打開設置 進入 File&#xff08;文件&#xff09; > Settings&#xff08;設置&#xff09;。 導航到版本控制設置&#xff1a; 在左側導航欄中&#xff0c;展開 Version Control&#xff08;版本控制&#xff09;。 選擇 Confirmation&#xff08;確認&#xff09;。修改文…