从后端到前端

news/2024/4/27 13:46:04/文章来源:https://blog.csdn.net/2302_79791164/article/details/136987607

原文地址:从后端到前端 - Pleasure的博客

下面是正文内容:

前言

在前面几章中主要介绍了系统开发的后端部分,但是验证接口的适用性只能通过专门的软件(Apifox,Postman等)来进行测试。那从现在开始,就正式来编写系统的前端部分。

这需要有一定的前端编写基础,并不会详细介绍前端页面具体是如何一步步编写的。

前端部分采用Vue.js来进行编写,后端部分采用SpringBoot来进行编写。

由于在企业中前端和后端一般通过标准规范的接口文档进行连接,而且每个人编写的后端程序变量名打包等存在差异,所以这篇文章还是以前端为主,通过接口进行连接和调用,后端用的就是我之前这个专栏撰写的用户模块的部分。

后端工程专栏:https://blog.csdn.net/2302_79791164/category_12611545.html

前置知识:前端工程Vue前置知识-CSDN博客

用户模块前端的代码:https://yiming1234.blog.csdn.net/article/details/136987110

正文

今天这篇文章就主要以介绍基础操作为主,具体的接口连接,登录态的保持等细节需要慢慢来。

创建Vue工程

需要准备的是Windows系统中的Nodejs环境变量。

大概配置方法可以参考我之前的这篇文章

https://yiming1234.blog.csdn.net/article/details/136120573

配置完成后,在想要放置工程目录的文件夹下cmd创建工程

npm init vue@latest

npm run dev

用VScode进行编辑,左边放置代码编辑器,右边放置网页文件进行实时刷新。

合理运用element-plus

Anchor 锚点 | Element Plus

自从Vue开发以来,Web前端页面的编辑也迈出了向组建化发展的重要一步。

element-plus就是重要的一步,让前端页面的编写变得非常简单。

安装:npm install element-plus --save

导入:import ElementPlus from 'element-plus'

导入组件:import { User, Lock } from '@element-plus/icons-vue'

想要什么页面展示组件只需要机械的进行复制粘贴和拼接就可以了。

但是在功能逻辑的实现上还需要进行另外规划。

默认文件的作用

在下面的这篇文章中我曾介绍过Vue工程中主要默认文件夹的作用,但是在实际应用中还有一些差异。

从前端到前端框架-CSDN博客

比如说这次涉及到的用户登录模块,相比于上面提到的文件,多出了api,router,utils,views等子文件夹。这些文件夹顾名思义,在分化上也和springboot有一定的相似性。

有专业名词不懂的可以去看这个前置知识。

api文件夹中存放连接调用接口的函数的文件。

router文件夹存放定义路由关系创建路由路由导出路由的文件。

stores文件夹一般用于存放与用户状态相关的文件。

utils文件夹用于存放工具类,比如说请求拦截器,响应拦截器等。

views文件夹用于存放直观展示的前端页面文件。

每一个文件夹基本上就代表着一个特定的功能,需要分别另起一章进行记录。

感兴趣的话大家可以点个关注跟进一下。

前置知识补充2

书接上文,前端工程Vue前置知识-CSDN博客

上一篇文章还是有一些概念没有提到,在这里一并进行补充。知道的可以跳过。

路由守卫

Vue 的路由守卫是一种机制,允许你在导航过程中对路由进行拦截和控制。通过路由守卫,你可以在路由导航前、导航后、组件更新前等不同阶段执行一些逻辑操作,比如权限验证、数据预加载、页面切换动画等。Vue Router 提供了三种类型的路由守卫:

  1. 全局前置守卫:通过在路由对象上注册 beforeEach 方法来实现全局前置守卫。这个方法会在每次路由导航触发之前被调用,可以用来进行全局的路由拦截和控制。
  2. 全局解析守卫:通过在路由对象上注册 beforeResolve 方法来实现全局解析守卫。这个方法会在导航被确认之前被调用,也就是在所有组件内守卫和异步路由组件被解析之后调用。
  3. 全局后置守卫:通过在路由对象上注册 afterEach 方法来实现全局后置守卫。这个方法会在每次路由导航完成之后被调用,可以用来进行一些全局的清理操作。

此外,还有组件内的路由守卫,比如 beforeRouteEnterbeforeRouteUpdate 和 beforeRouteLeave,这些守卫钩子函数可以在组件实例内部定义,用来对特定路由进行拦截和控制。

生命周期和钩子函数

Vue 的生命周期是指 Vue 实例从创建、挂载到销毁的整个过程中,会依次触发一系列的钩子函数,这些钩子函数称为生命周期钩子函数。Vue 实例的生命周期可以分为以下几个阶段:

  1. 创建阶段
    • beforeCreate:实例初始化之后,数据观测和事件配置之前被调用。
    • created:实例已经创建完成之后被调用,此时实例已经完成数据观测、属性和方法的运算,但是尚未挂载到 DOM 中。
  2. 挂载阶段
    • beforeMount:在挂载开始之前被调用,相关的 render 函数首次被调用。
    • mounted:实例挂载之后被调用,这时候 DOM 已经渲染出来了。
  3. 更新阶段
    • beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。
    • updated:数据更改导致虚拟 DOM 重新渲染和打补丁之后调用。
  4. 销毁阶段
    • beforeDestroy:实例销毁之前调用。此时实例仍然完全可用。
    • destroyed:实例销毁后调用,此时所有绑定和实例都会被解绑。

在每个阶段,开发者可以通过这些生命周期钩子函数来执行自定义逻辑,比如在创建阶段初始化数据、在挂载阶段发送网络请求、在销毁阶段清除定时器等。通过合理地使用生命周期钩子函数,可以更好地控制 Vue 实例的行为和实现一些特定的业务逻辑。

网络请求

Vue 的路由守卫是一种机制,允许你在导航过程中对路由进行拦截和控制。通过路由守卫,你可以在路由导航前、导航后、组件更新前等不同阶段执行一些逻辑操作,比如权限验证、数据预加载、页面切换动画等。Vue Router 提供了三种类型的路由守卫:

  1. 全局前置守卫:通过在路由对象上注册 beforeEach 方法来实现全局前置守卫。这个方法会在每次路由导航触发之前被调用,可以用来进行全局的路由拦截和控制。
  2. 全局解析守卫:通过在路由对象上注册 beforeResolve 方法来实现全局解析守卫。这个方法会在导航被确认之前被调用,也就是在所有组件内守卫和异步路由组件被解析之后调用。
  3. 全局后置守卫:通过在路由对象上注册 afterEach 方法来实现全局后置守卫。这个方法会在每次路由导航完成之后被调用,可以用来进行一些全局的清理操作。

此外,还有组件内的路由守卫,比如 beforeRouteEnterbeforeRouteUpdate 和 beforeRouteLeave,这些守卫钩子函数可以在组件实例内部定义,用来对特定路由进行拦截和控制。

Vue 的路由守卫是一种机制,允许你在导航过程中对路由进行拦截和控制。通过路由守卫,你可以在路由导航前、导航后、组件更新前等不同阶段执行一些逻辑操作,比如权限验证、数据预加载、页面切换动画等。Vue Router 提供了三种类型的路由守卫:

  1. 全局前置守卫:通过在路由对象上注册 beforeEach 方法来实现全局前置守卫。这个方法会在每次路由导航触发之前被调用,可以用来进行全局的路由拦截和控制。
  2. 全局解析守卫:通过在路由对象上注册 beforeResolve 方法来实现全局解析守卫。这个方法会在导航被确认之前被调用,也就是在所有组件内守卫和异步路由组件被解析之后调用。
  3. 全局后置守卫:通过在路由对象上注册 afterEach 方法来实现全局后置守卫。这个方法会在每次路由导航完成之后被调用,可以用来进行一些全局的清理操作。

此外,还有组件内的路由守卫,比如 beforeRouteEnterbeforeRouteUpdate 和 beforeRouteLeave,这些守卫钩子函数可以在组件实例内部定义,用来对特定路由进行拦截和控制。

通常会在组件的生命周期钩子函数中调用网络请求,比如在 created 钩子函数中发送网络请求获取数据,然后在 mounted 钩子函数中将数据渲染到页面上。这样可以保证数据在组件渲染之前就已经准备好了。

通过合理地使用第三方库进行网络请求,可以方便地与后端进行数据交互,并在 Vue 项目中实现各种功能,比如获取数据、提交表单、文件上传等。网络请求是 Vue 项目中常见的操作,也是实现前后端交互的重要手段。

尾声

要看代码的还是去这篇文章

https://yiming1234.blog.csdn.net/article/details/136987110

后续可能不会更新那么及时,需要时间用来整理一下素材和思路。

还有就是照顾一下学业,毕竟还是学生。

写博文只是为了以另一种形式在实战中练手罢了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1026652.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql公用表表达式CTE

公用表达式是MySQL8.0的新特性,它是一个命名的临时结果集,作用范围是当前语句。 可以理解成为当前sql语句定义了一个视图,sql语句的任何地方都可以使用这个视图,如果被多次使用就体现出了公用表达式的特点公用。 依据语法结构和执…

【Linux】进程>环境变量地址空间进程调度

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.环境变量 1.1 基本概念 1.2 常见环境变量 1.3 查看环境变量方法 1.4 和环境变量相关的命令 1.5 环境变量的组织方式 1.6 通…

Sodinokibi勒索病毒,BTC钱包地址被曝光

Sodinokibi勒索病毒在国内首次被发现于2019年4月份,2019年5月24日首次在意大利被发现,在意大利被发现使用RDP攻击的方式进行传播感染,这款病毒被称为GandCrab勒索病毒的接班人,从样本逆向分析的角度,可以看到Sodinokib…

发展规划--IM系统

1、时代背景 5G应用,多终端应用,物联网应用,小程序,工业互联,大数据应用等等大前端时代的到来,程序员不能只关注crud,因为以后的服务并发量只会越来越多。 高并发架构师、大数据架构师或者说j…

【Git篇】复习git

文章目录 🍔什么是git⭐git和svn的区别 🍔搭建本地仓库🍔克隆远程仓库🛸git常用命令 🍔什么是git Git是一种分布式版本控制系统,它可以追踪文件的变化、协调多人在同一个项目上的工作、恢复文件的旧版本等…

椋鸟数据结构笔记#2:复杂度

萌新的学习笔记,写错了恳请斧正。 目录 复杂度 时间复杂度 空间复杂度 通过复杂度衡量算法好坏 复杂度 复杂度是衡量算法好坏的一种方式。一般分为时间复杂度和空间复杂度,分别用于衡量一个算法在运行时间长短和占据内存空间多少两方面的优劣。 一…

elasticsearch 6.8.x 索引别名、动态索引扩展、滚动索引

文章目录 引言索引别名(alias)创建索引别名查询索引别名删除索引别名重命名索引别名 动态索引(index template,动态匹配生成索引)新建索引模板新建索引并插入数据索引sys-log-202402索引sys-log-202403索引sys-log-202…

C语言例4-3:复合语句,输出a,b的值

代码如下&#xff1a; //复合语句&#xff0c;输出a,b的值 #include<stdio.h> int main(void) {int a 10;printf("a %d\n",a);{int b20; //复合语句printf("b %d\n",b); //复合语句中的数据定义语句放在其他语句的前面}return …

uniapp实现单选组件覆盖选中样式

uniapp实现单选组件覆盖选中样式 完整代码&#xff1a; <!-- 是否选择组件: trueOfFalseChooseBtn --> <template><view class"is-true-body"><view class"btn-con" :class"isTrue ? btn-con-active : " click"clic…

42 ajax 下载文件未配置 responseType blob 导致的文件异常

前言 这是一个最近的关于文件下载碰到的一个问题 主要的情况是, 基于 xhr 发送请求, 获取下载的文件 然后 之后 xhr 这边拿到 字节序列之后, 封装 blob 来进行下载 然后 最开始我们这边没有配置 responseType 为 blob, arraybuffer, 然后 导致下载出来的 文件大小超过了…

前端Web移动端学习day05

移动 Web 第五天 响应式布局方案 媒体查询Bootstrap框架 响应式网页指的是一套代码适配多端&#xff0c;一套代码适配各种大小的屏幕。 共有两种方案可以实现响应式网页&#xff0c;一种是媒体查询&#xff0c;另一种是使用bootstrap框架。 01-媒体查询 基本写法 max-wid…

如何优化财务管理?中小型外贸企业实用指南

在当今全球化的商业环境中&#xff0c;越来越多的中小企业涉足外贸领域&#xff0c;以寻求更广阔的市场和发展空间。在这一过程中&#xff0c;财务管理的重要性尤为凸显&#xff0c;需关注外汇风险、税务合规性、现金流等多个方面的问题。 一、中小企业外贸财务管理难题 币种核…

Python入门练习 - 学生管理系统

Python 实现读书管理系统 """ 实现一个命令行版的读书管理系统 """ import os.path import sys# 使用这个全局变量&#xff0c;来管理所有的学生信息 # 这个列表的每个元素都是一个‘字典’&#xff0c;每 个 字典就分别表示了一个同学students …

argocd cli工具使用

一、前言 ragocd除了使用web界面操作之外&#xff0c;也可以通过argocd cli工具进行操作&#xff0c;关于集群创建、gitlab仓库创建、app创建都是可以通过yaml 文件去操作&#xff0c;使用web界面创建的操作也需要使用argocd cli工具进行备份 二、使用 在argocd部署的章节已经…

阿里云4核16G服务器优惠价格26元1个月、149元半年

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年。2024年腾讯云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也…

MySQL数据库高级语句

文章目录 MySQL高级语句older by 排序区间判断查询或与且&#xff08;or 与and&#xff09;嵌套查询&#xff08;多条件&#xff09;查询不重复记录distinctcount 计数限制结果条目limit别名as常用通配符嵌套查询&#xff08;子查询&#xff09;同表不同表嵌套查询还能用于删除…

Python基础教程:基本数据类型

基本数据类型 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组) 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合) Numbers(数字) 数字数据类型用于存储数值。 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对…

【正点原子FreeRTOS学习笔记】————(12)信号量

这里写目录标题 一、信号量的简介&#xff08;了解&#xff09;二、二值信号量&#xff08;熟悉&#xff09;三、二值信号量实验&#xff08;掌握&#xff09;四、计数型信号量&#xff08;熟悉&#xff09;五、计数型信号量实验&#xff08;掌握&#xff09;六、优先级翻转简介…

腾讯云GPU云服务器_GPU云计算_异构计算_弹性计算

腾讯云GPU服务器是提供GPU算力的弹性计算服务&#xff0c;腾讯云GPU服务器具有超强的并行计算能力&#xff0c;可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景&#xff0c;腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

LinkedIn 互联网架构扩展简史

LinkedIn成立于 2003 年&#xff0c;其目标是连接到您的网络以获得更好的工作机会。第一周只有 2,700 名会员。时间快进了很多年&#xff0c;LinkedIn 的产品组合、会员基础和服务器负载都取得了巨大的增长。 如今&#xff0c;LinkedIn 在全球运营&#xff0c;拥有超过 3.5 亿会…