后臺管理系統-2-vue3之路由配置和Main組件的初步搭建布局

文章目錄

  • 1 路由搭建
    • 1.1 路由創建(router/index.js)
    • 1.2 路由組件(views/Main.vue)
    • 1.3 路由引入并注冊(main.js)
    • 1.4 路由渲染(App.vue)
  • 2 element-plus的應用
    • 2.1 完整引入并注冊(main.js)
    • 2.2 示例應用(App.vue)
  • 3 ElementPlusIconsVue的應用
    • 3.1 圖標引入并注冊(main.js)
    • 3.2 示例應用(App.vue)
  • 4 Main組件的初步搭建
    • 4.1 整體布局
    • 4.2 Main.vue
      • 4.2.1 樣式設計
      • 4.2.2 頁面布局(Container)
  • 5 附錄
    • 5.1 PascalCase命名約定
    • 5.2 參考附錄

路由搭建、引入element-plus和ElementPlusIconsVue、初步對Main組件的布局進行靜態搭建。

1 路由搭建

在src下創建router文件夾,其中創建index.js。
在這里插入圖片描述
請添加圖片描述

1.1 路由創建(router/index.js)

(1)這個createRouter是用來創建router的,createWebHashHistory則是創建hash模式,如果使用hash模式則會在地址欄帶有一個#號。
(2)組件使用懶加載的方式引入。

import {createRouter, createWebHashHistory} from 'vue-router'
// 制定路由規則
const routes = [{path: '/',name: 'main',component: () => import('@/views/Main.vue')}
]const router = createRouter({// 設置路由模式history: createWebHashHistory(),routes
})export default router;

1.2 路由組件(views/Main.vue)

路由組件是與Vue Router路由配置直接關聯的組件,當訪問某個URL路徑時,該組件會被渲染到RouterView中。

<template><div>我是main組件</div>
</template><script setup>
</script><style scoped>
</style>

1.3 路由引入并注冊(main.js)

在main.js中:
當使用import關鍵字加載庫或模塊時,這被稱為“引入”。
當使用 .component()、.use()等方法把組件或插件添加到Vue應用實例中時,這就叫做“注冊”。

兩者都是構建Vue應用不可或缺的部分。

import { createApp } from 'vue'
import App from './App.vue'
import '@/assets/less/index.less';
import router from './router';
const app = createApp(App);
app.use(router);
app.mount('#app');

1.4 路由渲染(App.vue)

(1)router-view:這是Vue Router在Vue 2中的傳統用法。盡管在Vue 3中仍然支持這種寫法,但是推薦的方式已經發生了變化。
(2)RouterView:Vue 3推薦使用的寫法。使用PascalCase形式的自定義組件標簽(如RouterView)變得更為常見和規范。

<template><RouterView/>
</template><script setup>
</script><style scoped>
</style>

在這里插入圖片描述

2 element-plus的應用

Element Plus是一個基于Vue 3的現代化桌面端UI組件庫,是Element UI(用于Vue 2)的升級版本。它由餓了么(Eleme)團隊開發并開源,廣泛應用于中后臺管理系統(如Admin系統、CRM、ERP等)的前端開發。
三種使用方式:
(1)完整引入【推薦】。
(2)自動導入。
(3)手動導入。

2.1 完整引入并注冊(main.js)

import { createApp } from 'vue'
import App from './App.vue'
import '@/assets/less/index.less';
import router from './router';import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';const app = createApp(App);app.use(router);
app.use(ElementPlus);
app.mount('#app');

2.2 示例應用(App.vue)

<template><RouterView/><button>html自帶的</button><el-button>默認element-plus</el-button>
</template><script setup>
</script><style>#app{width: 100%;height: 100%;overflow: hidden;}
</style>

用于對id為app的根元素進行樣式設置,設置Vue應用根容器的樣式:
在這里插入圖片描述
(1)width: 100%和height: 100%:使應用容器占滿父元素的全部寬度和高度。
(2)overflow: hidden:隱藏超出容器邊界的內容,防止出現滾動條。
通常用于創建全屏應用布局,確保內容不會溢出顯示。
在這里插入圖片描述

3 ElementPlusIconsVue的應用

ElementPlusIconsVue是Element Plus官方提供的一個Vue 3兼容的圖標組件庫,全名為@element-plus/icons-vue。它包含了Element Plus設計體系下的所有SVG圖標,并將每個圖標封裝為一個獨立的Vue組件。

3.1 圖標引入并注冊(main.js)

import { createApp } from 'vue'
import App from './App.vue'
import '@/assets/less/index.less';
import router from './router';import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
//引入ElementPlusIconsVue 中所有的組件
import * as ElementPlusIconsVue from '@element-plus/icons-vue';const app = createApp(App);//for循環,注冊ElementPlusIconsVue 的組件
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component);
}app.use(router);
app.use(ElementPlus);
app.mount('#app');

將ElementPlusIconsVue中導出的所有圖標組件,全部注冊為全局組件,組件名為其對應的 key(即圖標名),之后可以在模板中直接使用這些圖標。

3.2 示例應用(App.vue)

<template><el-icon><Search /></el-icon><el-icon><Plus /></el-icon><el-icon><Avatar /></el-icon>
</template>

在這里插入圖片描述

4 Main組件的初步搭建

4.1 整體布局

一般后臺管理的布局就是左側菜單欄,然后右側的上面有一個導航欄,右側的下面就是要展示的頁面。
進入到不同的頁面,左側的菜單和頭部導航欄都是不變的,所以我們用一個Main組件來做布局。
在這里插入圖片描述
src/views/Main.vue。
src/components/ComonHeader.vue。
src/components/ComonAside.vue。

請添加圖片描述

4.2 Main.vue

4.2.1 樣式設計

要讓height: 100%正常工作,父元素(如html, body)也需要設置高度,這部分是在reset.less文件中提前設置的:
在這里插入圖片描述

某些情況下即使沒有明確在元素上寫類名也能使用類選擇器的情況,那可能是因為:
(1)默認類名:一些UI庫組件如Element Plus的組件可能有默認的類名,這些默認類名可以在文檔中查到,并且可以直接在CSS中使用。
(2)全局樣式:如果沒有使用scoped屬性,那么樣式是全局的,可能會應用到符合選擇器的所有元素,無論這些元素是否位于當前組件內。

4.2.2 頁面布局(Container)

用于布局的容器組件,方便快速搭建頁面的基本結構:
(1)el-container:外層容器。 當子元素中包含 el-header>或 el-footer>時,全部子元素會垂直上下排列, 否則會水平左右排列。
(2)el-header:頂欄容器。
(3)el-aside:側邊欄容器。
(4)el-main:主要區域容器。
(5)el-footer:底欄容器。

<template><div class="commom-layout"><el-container class="lay-container"><CommonAside/><el-container><el-header class="el-header"><CommonHeader/></el-header><el-main class="right-main">main</el-main></el-container></el-container></div>
</template><script setup>
</script><style scoped lang="less">.commom-layout,.lay-container{height: 100%;}.el-header{background-color: #333;}
</style>

因為左側的菜單欄還未添加,所以頁面如下所示:
在這里插入圖片描述

5 附錄

5.1 PascalCase命名約定

在這里插入圖片描述

PascalCase形式	對應含義
UserProfile		用戶資料
ShoppingCart	購物車
LoginForm		登錄表單
RouterView		路由視圖組件
MyCustomButton	自定義按鈕組件

5.2 參考附錄

參考elementplus官網地址
參考vue3實現通用后臺管理(傻瓜式一步一步記錄代碼實現過程)

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

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

相關文章

使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期

使用 Let’s Encrypt 免費申請泛域名 SSL 證書&#xff0c;并實現自動續期 目錄 使用 Let’s Encrypt 免費申請泛域名 SSL 證書&#xff0c;并實現自動續期 &#x1f6e0;? 環境準備&#x1f4a1; 什么是 Let’s Encrypt&#xff1f;&#x1f9e0; Let’s Encrypt 證書頒發原…

一鍵自動化:Kickstart無人值守安裝指南

Kickstart文件實現自動安裝1. Kickstart文件概述1.1 定義與作用Kickstart文件是Red Hat系Linux發行版&#xff08;如RHEL、CentOS、Fedora&#xff09;用于實現自動化安裝的配置文件&#xff0c;采用純文本格式保存。它通過預設安裝參數的方式&#xff0c;使系統安裝過程無需人…

深度解讀 Browser-Use:讓 AI 驅動瀏覽器自動化成為可能

目錄 一、什么是 Browser-Use&#xff1f; 二、Browser-Use 的核心功能 1. AI 與瀏覽器的鏈接橋梁 2. 無代碼 / 低代碼操作界面 3. 支持多家 LLM 4. 開發體驗簡潔 可快速上手 三、核心價值與適用場景 四、與 Playwright 的結合使用 五、總結與展望 https://github.com…

React.memo、useMemo 和 React.PureComponent的區別

useMemo 和 React.memo 都是 React 提供的性能優化工具&#xff0c;但它們的作用和使用場景有顯著不同。以下是兩者的全面對比&#xff1a; 一、核心區別總結特性useMemoReact.memo類型React Hook高階組件(HOC)作用對象緩存計算結果緩存組件渲染結果優化目標避免重復計算避免不…

Lumerical INTERCONNECT ------ CW Laser 和 OPWM 組成的系統

Lumerical INTERCONNECT ------ CW Laser 和 OPWM 組成的系統 引言 正文 引言 這里我們來簡單介紹一下 CW Laser 與 OSA 組成的簡單系統結構的仿真。 正文 我們構建一個如下圖所示的仿真結構。 我們將 CWL 中的 power 設置為 1 W。 然后直接運行仿真查看結果如下: 雖然 …

想漲薪30%?別只盯著大廠了!轉型AI產品經理的3個通用方法,人人都能學!

在AI產品經理剛成為互聯網公司香餑餑的時候&#xff0c;剛做產品1年的月月就規劃了自己的轉型計劃&#xff0c;然后用3個月時間成功更換賽道&#xff0c;轉戰AI產品經理&#xff0c;漲薪30%。 問及她有什么上岸秘訣&#xff1f;她也復盤總結了3個踩坑經驗和正確路徑&#xff0c…

基于Hadoop的全國農產品批發價格數據分析與可視化與價格預測研究

文章目錄有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主項目介紹每文一語有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主 項目介紹 隨著我國農業數字化進程的加快&#xff0c;農產品批發市場每天都會產生海量的價格…

STM32在使用DMA發送和接收時的模式區別

在STM32的DMA傳輸中&#xff0c;發送使用DMA_Mode_Normal而接收使用DMA_Mode_Circular的設計基于以下關鍵差異&#xff1a;1. ?觸發機制的本質區別??發送方向&#xff08;TX&#xff09;?&#xff1a;由USART的?TXE標志&#xff08;發送寄存器空&#xff09;觸發?&#x…

【秋招筆試】2025.08.15餓了么秋招機考-第三題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 03. A先生的商貿網絡投資 問題描述 A先生是一位精明的商人,他計劃在 n n n 個城市之間建立商貿網絡。目前有 m m

Socket 套接字的學習--UDP

上次我們大概介紹了一些關于網絡的基礎知識&#xff0c;這次我們利用編程來深入學習一下一&#xff1a;套接字Socket1.1什么是Socketsocket API 是一層抽象的網絡編程接口,適用于各種底層網絡協議,如 IPv4、IPv6,. 然而, 各種網絡協議的地址格式并不相同。1.2套接字的分類套接字…

AI - MCP 協議(一)

AI應用開發的高級特性——MCP模型上下文協議&#xff0c;打通AI與外部服務的邊界。 ************************************************************************************************************** 一、需求分析 當你的AI具備了RAG的能力&#xff0c;具備了調用工具的…

在es中安裝kibana

一 安裝 1.1 驗證訪問https的連通性 # 測試 80 端口&#xff08;HTTP&#xff09; curl -I -m 5 http://目標IP:端口號 說明&#xff1a; -I&#xff1a;僅獲取 HTTP 頭部&#xff08;Head 請求&#xff09;&#xff0c;不下載正文&#xff0c;減少數據傳輸。 -m 5&#x…

嵌入式開發學習———Linux環境下網絡編程學習(二)

UDP服務器客戶端搭建UDP服務器代碼#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h>#define PORT 8080 #define BUFFER_SIZE 1024int main() {int sockfd;char buffer[BUFFER_SIZE…

UVa1465/LA4841 Searchlights

UVa12345 UVa1465/LA4841 Searchlights題目鏈接題意輸入格式輸出格式分析AC 代碼題目鏈接 本題是2010年icpc亞洲區域賽杭州賽區的I題 題意 在一個 n 行 m 列&#xff08;n≤100&#xff0c;m≤10 000&#xff09;的網格中有一些探照燈&#xff0c;每個探照燈有一個最大亮度 k&…

詳解區塊鏈技術及主流區塊鏈框架對比

文章目錄一、區塊鏈技術棧詳解二、主流區塊鏈框架對比1. 公有鏈&#xff08;Public Blockchain&#xff09;2. 聯盟鏈&#xff08;Consortium Blockchain&#xff09;3. 私有鏈&#xff08;Private Blockchain&#xff09;三、技術選型建議1. 按需求選擇框架2. 開發工具與生態四…

大模型 + 垂直場景:搜索 / 推薦 / 營銷 / 客服領域開發有哪些新玩法?

技術文章大綱&#xff1a;大模型 垂直場景的新玩法大模型與搜索領域的結合大模型在搜索領域的應用可以顯著提升搜索結果的準確性和用戶體驗。利用大模型進行語義理解和上下文關聯&#xff0c;能夠實現更精準的意圖識別。結合知識圖譜和動態索引優化&#xff0c;可以增強長尾查…

p5.js 3D盒子的基礎用法

點贊 關注 收藏 學會了 如果你剛接觸 p5.js&#xff0c;想嘗試 3D 繪圖&#xff0c;那么box()函數絕對是你的入門首選。它能快速繪制出 3D 長方體&#xff08;或正方體&#xff09;&#xff0c;配合簡單的交互就能做出酷炫的 3D 效果。本文會從基礎到進階&#xff0c;帶你吃…

【動態規劃 完全背包 卡常】P9743 「KDOI-06-J」旅行|普及+

本文涉及知識點 C動態規劃 完全背包 C記憶化搜索 「KDOI-06-J」旅行 題目描述 小 C 在 C 國旅行。 C 國有 nmn\times mnm 個城市&#xff0c;可以看做 nmn\times mnm 的網格。定義 (i,j)(i,j)(i,j) 表示在網格中第 iii 行第 jjj 列的城市。 該國有 222 種交通系統&#x…

pytest框架-詳解

目錄 一、前言 二、pytest安裝 2.1、安裝 2.2、驗證安裝 2.3、pytest文檔 三、pytest框架的約束 3.1、 python的命名規則 3.2、 pytest的命名規則 四、pytest的運行方式 4.1、主函數運行 4.2、命令行運行 五、pytest配置文件pytest.ini文件 六、前置和后置 七、as…

【遞歸、搜索與回溯算法】DFS解決FloodFill算法

FloodFill算法簡介一、[圖像渲染](https://leetcode.cn/problems/flood-fill/description/)二、[島嶼數量](https://leetcode.cn/problems/number-of-islands/description/)三、[島嶼的最大面積](https://leetcode.cn/problems/max-area-of-island/description/)四、[被圍繞的區…