文章目录

  • 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/)四、[被围绕的区…