3、JavaWeb-Ajax/Axios-前端工程化-Element

P34 Ajax介绍

Ajax:Asynchroous JavaScript And XML,异步的JS和XML

JS网页动作,XML一种标记语言,存储数据,

作用:

  • 数据交换:通过Ajax给服务器发送请求, 并获取服务器响应的数据

  • 异步交互:在不重新加载整个页面的情况下,与服务器交换数据并实现更新部分网页的技术,例如:搜索
    联想、用户名是否可用的校验等等。

同步与异步

  • 同步:服务器在处理中客户端要处于等待状态,输入域名,点击某个超链接等是同步操作

  • 异步:服务器在处理中客户端无需等待,也可以执行其他操作。

原生Ajax:(繁琐,现在常使用的是基于原生Ajax封装的技术,例如Axios)

  • 准备数据地址,前后端交互主流数据格式就是json

  • 创建XMLHttpRequest对象,用于和服务器交换数据

  • 向服务器发送请求

  • 获取服务器响应数据

例如:

 function getData() {// 创建XMLHttpRequestvar xmlHttpRequest = new XMLHttpRequest();// 发送异步请求xmlHttpRequest.open('GET', '');// 获取服务器响应数据xmlHttpRequest.onreadystatechange = function(){if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){document.getElementById('div1').innerHTML = xmlHttpRequest.responseText;}}}

可以查看官方文档,readyState为4表示请求已2完成并且响应已就绪。

status为返回请求的状态号,

  • 200为OK

  • 403为Forbidden

  • 404为Not Found

XHR就是XMLHttpRequest的简写,代表的就是异步请求。

P35 Ajax-Axios2

对原生的Ajax进行封装,简化书写,快速开发。

使用方式:

  • 引入Axios的js文件

  • 使用其发送请求,并获取响应结果

例如:

 function get(){// 通过axios发送异步请求getaxios({method: "get",url: "https://dev.usemock.com/65dabfacc87ce4342e151249/ajax/01",}).then(result => {// 成功的回调函数console.log(result.data);})}

Axios请求方式别名:

  • axios.get()

  • axios.delete()

  • axios.post()

  • axios.put()

因此上述示例代码可以写为:

axios.get("").then((result)=>{console.log(result.data);
});

案例:基于Vue和Axios完成数据的动态加载展示

P36 前后端分离

在前端工程发起异步请求请求后端工程,处理完毕后返回给前端工程。

前后端开发遵守的开发规范定义在接口文档当中,将接口理解为一个业务功能,

下面是一个接口文档的示例:

接口文档-示例

1 根据ID查询员工

1.1 基本信息

请求路径:/emp

请求方式:GET

接口描述:该接口用于根据ID查询员工信息

1.2 请求参数

参数说明:

参数名类型是否必须备注
idnumber必须员工ID

请求样例:

 GET http://localhost:8080/emp?id=15
1.3 响应数据

参数格式:application/json

参数说明:

名称类型是否必须备注其他信息
codenumber必须响应码, 1 成功 , 0 失败
msgstring非必须提示信息
dataobject必须返回的数据
- idnumber非必须id
- namestring非必须姓名
- gendernumber非必须性别 , 1 男 ; 2 女
- imagestring非必须图像
- jobnumber非必须职位
- entrydatestring非必须入职日期
- updateTimestring非必须更新时间

响应数据样例:

 {"code": 1,"message": "success","data": {"id": 15,"name": "谢逊","image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/web/1.jpg","gender": 1,"job": "班主任","entrydate": "2008-05-09","updatetime": "2022-10-01 12:00:00"}}

如何维护接口文档

  • 在线:利用接口管理平台进行维护

  • 离线

接口文档通过产品经理经过原型和需求分析得来,

开发流程

  • 需求分析

  • API接口文档

  • 前后端并行开发

  • 测试

  • 前后端联调测试

接口文档管理平台-YAPI

https://yapi.pro/

功能:

  • API接口管理

  • Mock服务:测试接口,生成模拟测试数据

平台使用步骤:

  • 添加项目

  • 添加分类

  • 添加接口

创建好接口后会有一个Mock地址,可以访问它得到测试数据集。

在高级Mock里面可以设置期望返回的数据。

P37 前端工程化-环境准备

实际的前端开发:

  • 模块化:将JS、CSS等封装为模块可复用

  • 组件化:UI结构、样式、行为

  • 规范化:目录结构、编码、接口

  • 自动化:构建、部署、测试

前端工程化:在企业级的前端项目开发中,把前端开发所需的工具、技术、流程、经验等进行规范化、标准化。

环境准备

上述可以使用Vue脚手架,

Vue-cli是Vue官方提供的一个脚手架,用于快速生成一个Vue的项目模板

Vue-cli提供了如下功能:

  • 统一的目录结构

  • 本地测试

  • 热部署:应用程序代码变动,不需要再次运行即可加载最新的程序

  • 单元测试

  • 集成打包上线

依赖环境:Node.js,前端工程化的运行环境

下载Node.js后安装,使用node -v查看是否配置好,

node.js中的包资源管理器

安装脚手架,npm install -g @vue/cli

查询是否安装成功vue --version

P38 前端工程化-Vue项目简介

创建有两种方式:

  • 命令行:vue create vue-project01

  • 图形化界面:在cmd中输入vue ui,打开Vue项目管理器

流程:
在这里插入图片描述

执行完成后就创建完成了,创建界面可以直接关掉了。

在这里插入图片描述

使用vs-code打开项目文件夹。

基于Vue脚手架创建出来的工程,有标准的目录结构:

  • node_modules:项目依赖包

  • public:项目静态文件

  • src:存放项目源代码

    • assets静态资源

    • components可重用的组件

    • router路由配置

    • views视图组件,页面

    • App.vue入口页面(根组件)

    • main.js入口js文件

  • package.json:模块基本信息,项目开发所需模块及版本信息

  • vue.config.js:保存vue配置的文件,例如代理、端口的配置等。

运行Vue项目:

  • 使用图形化界面

  • 命令行npm run serve

运行成功后默认是8080端口,而后面的Tomcat部署也用到8080,所以更改前端项目端口的方法:

P39 前端工程化-Vue项目开发流程

import 引入模块

export 将函数或对象导出为模块

render方法将导入的app视图创建出来的虚拟Dom元素挂载到app页面当中

new Vue({router, render: h => h(App)
}).$mount('#app')// 和下面的类似
// 如果属性名和属性一致,:后面可以省略
new Vue({el: "#app",router: router,render: h => h(App)
})

vue结尾的文件可称为组件文件,每个组件由三个部分组成:

  • < template>
  • < script>
  • < style>

创建script后,输入data,快捷生成data结构,可在return 中定义数据模型

P40 Element-快速入门

Element是基于Vue2.0的桌面端组件库

使用Element:

  • 安装组件库,npm install element-ui@2.15.33

  • 引入组件库

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'Vue.use(ElementUI);  // 表示使用该组件
  • 访问官网,复制组件代码,调整

假如创建了一个.vue组件,需要在App.vue中引入新建的组件。

P48 vue路由

前端路由:URL中的hash(#号)与组件之间的对应关系。

Vue Router:Vue官方路由

组成:

  • VueRouter:路由器类,根据路由请求在路由视图中动态渲染选中的组件

  • :请求链接组件,浏览器会解析成

  • :动态视图组件,用来渲染展示与路由路径对应的组件

安装Vue路由:npm install vue-router@3.5.1

redirect重定向。

P49 打包部署

将前端工程和后端工程分开部署在服务器上

前端服务器较流行的是nginx,

两步操作:

  • 打包:执行build命令,生成dist文件夹,npm run build

  • 部署:将打包好的dist目录文件复制到nginx安装目录的html目录下

Nginx:

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,

其特点是占有内存少,并发能力强,在各大互联网公司都有广泛应用。

启动nginx,双击nginx.exe,服务器默认占用80号端口,配置nginx端口号在conf文件夹中找到nginx.conf。

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

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

相关文章

072:vue+cesium 实现下雪效果

第072个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中实现下雪效果,这里使用着色器来实现实例特效。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共120行)着色代码实现心得:专栏目标示例效果

Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录 往期精彩内容&#xff1a; 前言 1 数据集和特征提取 1.1 数据集导入 1.2 扰动信号特征提取 2超强模型XGBoost——原理介绍 2.1 原理介绍 2.2 特征数据集制作 3 模型评估和对比 3.1 随机森林分类模型 3.2 支持向量机SVM分类模型 3.3 XGBoost分类模型 代码、数据…

Qt 简约美观的加载动画 第九季

这次和大家分享6个非常清爽的加载动画. &#x1f60a; 效果如下 &#x1f60a; 一共三个文件 , 可以直接编译运行的呢 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc, char *argv[]) …

css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解

文章目录 1.相对定位 relative2.绝对定位 absolute3.固定定位4.display 转换元素5.float浮动6.float产生内容塌陷问题7.overflow CSS样式学习宝典&#xff0c;关注点赞加收藏&#xff0c;防止迷路哦 在CSS中关于定位的内容是&#xff1a;position:relative | absolute | static…

Java进阶-测试方法

来学习一下软件测试相关的方法&#xff0c;了解一下黑盒测试和白盒测试&#xff0c;以及后面要用到的JUnit单元测试。JUnit单元测试也属于白盒测试&#xff0c;这次内容较少且相对简单。 一、软件测试方法 1、黑盒测试 不需要写代码&#xff0c;给输入值&#xff0c;看程序…

【Tomcat】The CATALINA_HOME environment variable is not defined correctly

文章目录 一、问题二、解决办法三、优化 一、问题 运行绿色版Tomcat时&#xff0c;单击apache-tomcat-9.0.27\bin\startup.bat时窗口一闪而过。 检查JAVA_HOME环境变量&#xff0c;可以发现并没有问题。 为了检查错误&#xff0c;将startup.bat程序使用文本编辑器打开&#x…

单片机独立按键控制LED状态

一、前言 这幅图是按键的抖动与时间的联系 按键抖动&#xff1a;对于机械开关&#xff0c;当机械鮑点断开、闭合时&#xff0c;由于机械触点的弹性作用&#xff0c;一个开关在闭合时不会马上稳定地接通&#xff0c;在断开时也不会一下子断开&#xff0c;所以在开关闭合及断开的…

《JAVA与模式》之调停者模式

系列文章目录 文章目录 系列文章目录前言一、为什么需要调停者二、调停者模式的结构三、使用电脑来看电影 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通…

【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素

作者推荐 视频算法专题 本文涉及的基础知识点 二分查找算法合集 LeetCode378. 有序矩阵中第 K 小的元素 给你一个 n x n 矩阵 matrix &#xff0c;其中每行和每列元素均按升序排序&#xff0c;找到矩阵中第 k 小的元素。 请注意&#xff0c;它是 排序后 的第 k 小元素&…

深度学习_15_过拟合欠拟合

过拟合和欠拟合 过拟合和欠拟合是训练模型中常会发生的事&#xff0c;如所要识别手势过于复杂&#xff0c;如五角星手势&#xff0c;那就需要更改高级更复杂的模型去训练&#xff0c;若用比较简单模型去训练&#xff0c;就会导致模型未能抓住手势的全部特征&#xff0c;那简单…

了解游戏中的数据同步

目录 数据同步 通过比较来看状态同步和帧同步 状态同步 帧同步 帧同步实现需要的条件 两者相比较 数据同步 在联机游戏中&#xff0c;我的操作和数据要同步给同一局游戏中其他所有玩家&#xff0c;其他玩家的操作和数据也会同步给我。这叫做数据同步&#xff0c;目前数据…

《TCP/IP详解 卷一》第10章 UDP 和 IP 分片

目录 10.1 引言 10.2 UDP 头部 10.3 UDP校验和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子&#xff1a;IPV4 UDP分片 10.7.2 重组超时 10.8 采用UDP的路径MTU发现 10.9 IP分片和ARP/ND之间的交互 10.10 最大UDP数据报长度 10.11 UDP服务器…