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

P34 Ajax介绍

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

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

作用:

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

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

同步与异步

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

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

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

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

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

  • 向服务器发送请求

  • 获取服务器响应数据

例如:

 function getData() {
        // 创建XMLHttpRequest
        var 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发送异步请求get
        axios({
            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。

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

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

相关文章

代码随想录day11(1)字符串:反转字符串中的单词 (leetcode151)

题目要求&#xff1a;给定一个字符串&#xff0c;将其中单词顺序反转&#xff0c;且每个单词之间有且仅有一个空格。 思路&#xff1a;因为本题没有限制空间复杂度&#xff0c;所以首先想到的是用split直接分割单词&#xff0c;然后将单词倒叙相加。 但如果想让空间复杂度为O…

ChatGPT 4.0使用之论文阅读

文章目录 阅读环境准备打开AskYourPDF进入主站 粗读论文直接通过右侧边框进行提问选中文章内容翻译或概括插图的理解 总结 拥有了GPT4.0之后&#xff0c;最重要的就是学会如何充分发挥它的强大功能&#xff0c;不然一个月20美元的费用花费的可太心疼了&#xff08;家境贫寒&…

抖音视频评论挖掘工具|视频批量采集软件

抖音视频评论挖掘工具——让你轻松获取大量评论数据 抖音视频评论挖掘工具是一款基于C#开发的高效、便捷的工具&#xff0c;旨在为用户提供全面的数据采集和分析服务。无论你是想了解用户对某个话题或产品的看法&#xff0c;还是想分析评论中的热点和趋势&#xff0c;这款工具都…

从0开始学习NEON(1)

1、前言 在上个博客中对NEON有了基础的了解&#xff0c;本文将针对一个图像下采样的例子对NEON进行学习。 学习链接:CPU优化技术 - NEON 开发进阶 上文链接:https://blog.csdn.net/weixin_42108183/article/details/136412104 2、第一个例子 现在有一张图片&#xff0c;需…

自建Web视频会议,视频互动,SFU/MCU融合架构选型方案分析

网络越来越好&#xff0c;大家已经越来越多接受在家在线办公&#xff0c;在线工作越来越离不开视频会议&#xff0c;视频互动&#xff0c;当然云平台很多&#xff0c;但也用不同的需求&#xff0c;很多需要自建平台与自已的业务系统集成对接。因为大家业务系统多是b/s架构。一般…

Flink StreamGraph生成过程

文章目录 概要SteramGraph 核心对象SteramGraph 生成过程 概要 在 Flink 中&#xff0c;StreamGraph 是数据流的逻辑表示&#xff0c;它描述了如何在 Flink 作业中执行数据流转换。StreamGraph 是 Flink 运行时生成执行计划的基础。 使用DataStream API开发的应用程序&#x…

远程调用--Http Interface

远程调用--Http Interface 前言1、导入依赖2、定义接口3 创建代理&测试4、创建成配置变量 前言 这个功能是spring boot6提供的新功能&#xff0c;spring允许我们通过自定义接口的方式&#xff0c;给任意位置发送http请求&#xff0c;实现远程调用&#xff0c;可以用来简化…

Android 开发环境搭建的步骤

本文将为您详细讲解 Android 开发环境搭建的步骤。搭建 Android 开发环境需要准备一些软件和工具&#xff0c;以下是一些基础步骤&#xff1a; 1. 安装 Java Development Kit (JDK) 首先&#xff0c;您需要安装 Java Development Kit (JDK)。JDK 是 Android 开发的基础&#xf…

跨平台指南:在 Windows 和 Linux 上安装 OpenSSL 的完整流程

Windows安装 一&#xff1a;找到安装包&#xff0c;双击即可 https://gitee.com/wake-up-again/installation-package.git 二&#xff1a;按照提示&#xff0c;一步一步来&#xff0c;就可以啦 三&#xff1a;此界面意思是&#xff0c;是否想向创作者捐款&#xff0c;自己视情…

Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项

问题描述 最近想用 Rider 作为 UE4 开发的 IDE&#xff0c;但安装好 Rider 后&#xff0c;发现编辑器下拉框中没有 Rider 的选项&#xff0c;我检查了 UE4 的插件&#xff0c;发现 Rider Integration 插件已经安装且启用的。 环境&#xff1a;Ubuntu 20.04 UE4.27 Rider2023…

3、Redis Cluster集群运维与核心原理剖析

Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c;哨兵的配置略微复杂&#xff0c;并且性能和高可用性…

企业计算机服务器中了360勒索病毒如何解密,360后缀勒索病毒处理流程

对于众多的企业来说&#xff0c;企业的数据是企业发展的核心&#xff0c;越来越多的企业开始注重企业的数据安全问题&#xff0c;但随着网络技术的不断发展与应用&#xff0c;网络黑客的攻击加密手段也在不断升级。近期&#xff0c;云天数据恢复中心接到多家企业的求助&#xf…

【深入理解设计模式】桥接设计模式

桥接设计模式 桥接设计模式是一种结构型设计模式&#xff0c;它旨在将抽象部分与实现部分分离&#xff0c;使它们可以独立变化&#xff0c;从而更好地管理复杂性。桥接模式通常涉及多个层次的抽象&#xff0c;其中一个层次&#xff08;通常称为"抽象"&#xff09;依…

YOLO-World 简单无需标注无需训练直接可以使用的检测模型

参考: https://github.com/AILab-CVC/YOLO-World YOLO-World 常规的label基本不用训练,直接传入图片,然后写入文本label提示既可 案例demo: 1)官方提供 https://huggingface.co/spaces/stevengrove/YOLO-World https://huggingface.co/spaces/SkalskiP/YOLO-World 检测…

javaWebssh在线授课辅导系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh在线授课辅导系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

Spring框架学习

Spring&#xff1a; &#xff08;1&#xff09;Bean线程安全问题 &#xff08;2&#xff09;AOP&#xff0c;事务原理&#xff0c;事务失败 &#xff08;3&#xff09;Bean的生命周期 &#xff08;4&#xff09;循环依赖 SpringMVC&#xff1a; &#xff08;1&#xff09…

技术小知识:面向对象和过程的区别 ⑤

一、思想区别 面相对象&#xff1a;始终把所有事情思考归类、抽离封装成对象来调用完成。 面向过程&#xff1a;直接平铺展开按顺序执行完成任务。 面向对象多了很多对象的创建、使用&#xff0c;销毁的过程资源消耗。是一种模块化编程思想。 https://www.cnblogs.com/kuangmen…

为何要使用流媒体服务器

安防系统中&#xff0c;我们偶尔会遇到“流媒体服务器”这个词&#xff0c;那么为什么需要这个服务呢&#xff1f; 视频监控 我们知道&#xff0c;监控摄像机的工作原理就是将自然界的光影&#xff0c;通过摄像机镜头对焦到“靶芯”&#xff08;CMOS&#xff09;&#xff0c;实…

mysql8修改密码

mysql8.0修改密码 windows下忘了MySQL8.0的密码&#xff0c;可以通过以下方式修改。 1、管理员方式打开cmd命令窗口 输入&#xff1a; net stop mysql接着输入&#xff1a; mysqld --console --skip-grant-tables --shared-memory2、管理员方式打开另外一个cmd窗口 输入&…

nvm安装和使用保姆级教程(详细)

一、 nvm是什么 &#xff1a; nvm全英文也叫node.js version management&#xff0c;是一个nodejs的版本管理工具。nvm和npm都是node.js版本管理工具&#xff0c;为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 二、卸载之前安装的node: …