前端开发项目技术总结

news2024/11/27 16:28:45

前端 vue框架简单学了一遍,也做了demo,主要学了创建项目、路由、状态管理、UI组件库等。

最近在做前端的项目,总结一些开发遇到的问题和解决方案

数据绑定模型

vue框架的标签 :data 和prop标签 data绑定对应的模型,prop是对应模型里面的属性名

image.png

image.png

点击注册在同一个页面内容跳转如何完成的

用一个const isRegister = ref(false) 这个来标识,false显示的是登录表单,true显示注册表单,点击注册的时候,讲这个值修改为true,点击返回将这个值修改为true。这样就可以完成页面的跳转了。
image.png

image.png

通过标签v-if v-else 来控制显示,是作用的el-form上面。 具体的表单属性是el-form-item;image.png
image.png

解决跨域问题

由于浏览器具有同源策略的限制,向不同源发送ajax请求会发生失败,如何解决跨域问题呢?
可以通过配置代理的方式来解决,让前端的请求发送给自己的前端服务,通过修改请求地址比再发送给后端服务,也可以通过nginx服务器来配置代理。
image.png
image.png
如果不填写对应的url,浏览器默认是给当前端口所占用的服务发送请求。
vite.config.js文件中配置代码
image.png

vue组件ref

ref提供了一种访问DOM元素或组件实例的方式,但是如果需要使用ref的值,是需要在对象后面.value才可以使用。
image.png

定义表单校验的规则

element-plus提供的表单校验规则的代码,需要const编写一个rules属性。
required为标签是否需要填写,trigger是标签是如何才能触发的;也可以自定义校验规则,用函数validator来接收,函数有三个参数,rule value callback。 callback是回调。
image.png
使用的时候在表单上面添加 :rules属性 在具体的item上面添加prop属性
image.png

trigger 属性用于指定何时触发某个特定的事件。blur 是一个常见的事件,表示当元素失去焦点时触发。因此,trigger 设置为 blur 的意思是指定在元素失去焦点时触发某个事件。

后端项目部署

项目需要部署到固定的服务器上面,开发好的项目如何进行部署呢?
image.png
windows部署项目
image.png
执行maven packege,编译->测试->打包
image.png

部署项目 首相将项目打包成jar包,采用的是package命令将项目打包,运行Jar包的命令是Java -jar Jar包名称;
服务器必须要有对应的jre环境

布局

image.png
后台管理系统经常采用的是总体的左右进行布局,右边模块,分为上中下布局,最上面可能显示对应的路由或者页面跳转等,中间显示页面的主要信息,下面可能显示版权等内容。

想要切换页面 需要掌握路由功能

路由 是决定从起点到终点的路劲的进程
在前端工程中,路由指的是根据不同的访问路径,展示不同的组件内容
Vue Router是Vue.js的官方路由
image.png
image.png在main.js中导入对应的vue文件;

路由的js文件 1.导入vue-router 2.导入需要路由的组件 3.定义路由关系4.创建路由并且导出

使用路由功能:
image.png

子路由问题:
一级路由和二级路由问题
image.png
给item标签配置子路由

image.png
image.png

使用路由功能首先需要分析有几个等级的路由,画出图像,在路由里面层层去嵌套即可。

跨路由共享信息

由于登录的时候获得了token,下面的请求token是没有共享的,那么如何共享token呢?
image.png

  1. 首先安装 pinia npm install pinia
  2. 在vue中使用应用实列pinia
  3. 在js中定义store
  4. 在组件中使用store

使用流程
image.png
定义token.js
image.png
组件中使用token.js
image.png

pinia持久插件

之前的列表存在bug,pinia默认是内存存储的,刷新浏览器会丢失数据。
persist插件可以讲pinia中的数据持久化的存储起来。

npm install pinia-persistedstate-plugin

image.png
使用的流程image.png
注意是pinia使用这个持久化的插件,并不是vue使用这个插件

未登录的统一操作

对未登录的状态进行统一处理
本项目用到的是相应拦截器来完成未登录的操作,通过配置http response inteceptor,当后端接口返回401 Unauthorized(未授权),让用户重新登录。跳转对应的路由;

image.png

image.png

编辑分类功能编写

image.png
因为添加分类和编辑分类共用的是一个弹窗,如何区别呢?
对弹窗引入一个title属性
image.pngimage.pngimage.png
点击添加分类,title改为添加分类 ,点击修改分类 title 改为修改分类
image.png
在 确定按钮上绑定点击事件,通过title的属性来判断,编写对应的三元组;

此时添加分类和修改共用的是一个数据模型,当点击修改分类的时候,模型绑定的对应的数据,再点击对应的添加分类的时候数据需要清空,编写下面的代码
image.png

删除或者退出的提示框编写

image.png

HTTP delete请求拼接参数

image.png
http请求路径后面包含参数,用?进行拼接。

分页条相关

导入的element-plus组件
image.png
使用中文语言包,分页默认是英文的
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++杂货铺】详解类和对象 [下]

个人博客:代码菌-CSDN博客 专栏:C杂货铺_代码菌的博客-CSDN博客 目录 🌈前言🌈 📁 初始化列表(灰常重要) 📂 引入 📂 概念 📂 特性 📁 拓展构…

【计算机二级考试C语言】C递归

目录 C 递归 数的阶乘 实例 斐波那契数列 实例 C 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从…

关闭idea之后,项目还在运行,端口被占用

今天在写项目的时候,中途安装了一个插件,而且插件显示需要重启idea,重启的时候项目正在运行,重启之后发现idea没有显示有项目正在运行,当我要开启项目的时候,发现无法开启,显示端口被占用了&…

您企业的(AI)人工智能处于哪个准备阶段?

全新AI准备度评估工具现已推出 根据Gartner 2020年CIO调查报告,仅19%的首席信息官声称其AI项目已投产。这意味着,如果要将AI计划部署到生产过程中,高达80%的企业无法实现。我们发现,澳鹏客户取得成功的几率要高出三倍&#xff0c…

@Test Annotation属性- dependsOnMethods属性

目录 语法 如果test1()失败了怎么办?test2()测试会发生什么,因为它依赖于test1? 如果我们在test1()方法上不使用Test注释,但在test 2(&#xf…

放弃Nacos作为配置中心,转而选择这款神器~

目前,我们所有微服务的配置中心都没有采用Nacos,而是选择了另一款携程开源的分布式配置中心Apollo,今天就跟大家详细介绍一下这款神级配置中心 1. 基本概念 由于 Apollo 概念比较多,刚开始使用比较复杂,最好先过一遍…

YOLOv5改进系列(29)——添加DilateFormer(MSDA)注意力机制(中科院一区顶刊|即插即用的多尺度全局注意力机制)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2)——添加CBAM注意力机制 YOLOv5改进系列&…

【Java 数据结构】栈和队列

栈和队列 1. 栈(Stack)1.1 概念1.2 栈的使用1.3 栈的模拟实现1.4 栈的应用场景1.5 概念区分 2. 队列(Queue)2.1 概念2.2 队列的使用2.3 队列模拟实现2.4 循环队列 3. 双端队列 (Deque)4. 面试题 1. 栈(Stack) 1.1 概念 栈:一种特殊的线性表,其只允许在…

STM32入门教程-2023版【5-1】NVIC

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 四、NVIC (1)NVIC基本结构 外部中断的整体结构图如下: 这个NVI…

代码随想录算法训练营29期|day37 任务以及具体任务

第八章 贪心算法 part06 738.单调递增的数字 版本2 class Solution {public int monotoneIncreasingDigits(int n) {String s String.valueOf(n);char[] chars s.toCharArray();int start s.length();for (int i s.length() - 2; i > 0; i--) {if (chars[i] > chars…

利用ASM功能实现零停机oracle RAC存储迁移

在实际生产过程中,经常会遇到比如新旧存储替换等场景,如果是一般情况可能只有做数据迁移才能实现,而迁移可能就存在停机的可能 这里介绍利用ASM DG加盘踢盘功能实现零停机存储迁移;原理很简单 将新存储磁盘添加到data dg&#xf…

江科大stm32学习笔记9——OLED调试工具

一、OLED OLED:有机发光二极管,供电3~5.5V,0.96寸OLED通信协议:I2C/SPI,分辨率:128*64 二、调试方式 串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手…

Mysql数据库锁--全局锁、表锁、行锁

Mysql数据库按照加锁范围划分 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类 全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只…

CTF盲水印工具:Blind-WaterMark安装

工具下载地址:GitCode - 开发者的代码家园 下载完毕后,只留这些东西就行 接下来需要安装两个依赖: opencv、matplotlib 直接pip install安装的话,工具使用会报错 所以需要到网站里挑选适合的版本进行安装 下载地址&#xff1…

四通道 LVDS 差分线缆接收器MS21148T

产品简述 MS21148T 是一款四路低压差分信号 (LVDS) 线路接收器。在 输入共模电压范围内,每一路差分接收器都可以把 100mV 的差 分输入电压转换成有效的逻辑输出。 该芯片可应用于约 100Ω 的 受控阻抗介质上进行点对点基带数据传输。传输介质可以是印 刷电…

基于 Langchain-Chatchat,我搭建了一个本地知识库问答系统

文章目录 一、LangChain-Chatchat二、搭建步骤2.1 环境配置2.2 模型下载2.3 初始化知识库和配置文件2.4 一键启动2.5 启动界面示例 技术交流群用通俗易懂方式讲解系列 一、LangChain-Chatchat 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部…

图像异或加密、解密的实现

很多论文提到了从左上角开始做异或,逐行推导得到结果。 解密过程是加密的逆过程。 先看其基本方法: 参考文献: A Chaotic System Based Image Encryption Scheme with Identical Encryption and Decryption Algorithm 大多数论文都用了这个思路,我们使用MATLAB实现代码…

永久删除 Elasticsearch 中的主节点

Elasticsearch 是一个开源分布式搜索和分析引擎,用于各种任务,例如全文搜索、日志分析和实时数据分析。 Elasticsearch 集群由一个或多个节点组成,每个节点可以具有多种角色,包括主节点(master node)、数据…

【JaveWeb教程】(37)SpringBootWeb案例之《智能学习辅助系统》的详细实现步骤与代码示例(10)JWT令牌技术讲解

目录 SpringBootWeb案例10 JWT令牌2.3 JWT令牌2.3.1 介绍2.3.2 生成和校验2.3.3 登录下发令牌 SpringBootWeb案例10 JWT令牌 2.3 JWT令牌 前面我们介绍了基于令牌技术来实现会话追踪。这里所提到的令牌就是用户身份的标识,其本质就是一个字符串。令牌的形式有很多…

【vim 学习系列文章 3.2 -- vim 删除 空格】

文章目录 vim 删除行尾空格 vim 删除行尾空格 在代码开发的过程中&#xff0c;经常会遇到行尾有空格的现象&#xff0c;如下&#xff1a; 我们可以在 .vimrc 中通过map 命令来映射删除行尾空格的快捷键&#xff0c;如下&#xff1a; map d<space> :%s/\s*$//g <cr…