开发流程

前端开发和后端开发是一样的,都需要阅读接口文档。 

准备工作: 

 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;。修改文…