赞
踩
开发流程:
后端接口MVC开发–》前端JS的后端请求方法–》前端对数据进行美化渲染显示和数据交互JS方法绑定。
首先引入依赖(外部功能都需要先引入对应依赖才能调用API传参实现功能)
某些高大上的功能如果不是调库/导包/API传参,那么就得自己生写这些功能。例如地图定位等等非常人所能生写,一般都是调库/导包/API传参,利用已写好的代码实现功能(抄作业)。
实际上很多本科软件竞赛项目的高大上功能,大都是基于python导的外部功能包/调库/API传参然后根据返回的数据进行自己的if判断以及前端显示来实现创意功能。(例如地图定位等等 )
答辩时,老师只需要问一句,这个算法/功能/API是你自己写的吗?就会打到项目的七寸上,基本上七成崩盘了。
当然这也是函数库/功能包/API存在的意义,方便快速开发,降低功能实现的复杂度。
先定位再修改
实际开发中,主要代码逻辑也存在于Controller层和ServiceImpl层
若是想改前端界面样式则直接改element-ui组件就可以了。
注意:前后端交互时传递的是JSON字符串,但是前后端处理信息时需要将JSON字符串转化为JSON对象才能处理信息(基本上前后端框架已经转化好了,有些时候需要手动转化为对象)。
因为JSON字符串本质还是字符串,无法直接key:value方式提取值,但是可以根据JSON的格式进行字符串算法操作,这些固定的操作后来封装为JSON字符串转对象的工具,可以通过工具类的接口方法传入JSON字符串返回JSON对象(例如:GSON)
后端
前端
JAVA开发过程中,前后端属于应用层,信息交互解析基于http协议。
前后端是基于http协议解析信息而body中信息类型则是json字符串类型
前后端将json字符串类型转化为json对象才能进行处理。
前端对应最终post请求使用http协议中的body存储大数据(json字符串)与后端交互。
前端http的request请求,后端http的response响应。
vue对象的生命周期中created方法之前data数据和methods方法都已被加载好,所以create可以调用method方法进行页面数据初始化。
前端发送需求:views->api->utils->后端
后端返回数据:后端->utils->api->views
前端http的request请求,后端http的response响应。
前后端交互具体实现是基于http协议,前端向后端发送http的request请求,后端处理完后返回http的response响应
因为http协议的body中只存储字符串类型数据,所以前后端交互时需要将对象转化为JSON字符串类型才能进行http协议的数据搭载交互。
注意:
前端显示的全部信息都来源于response的body中的响应报文。
后端得到的request请求参数既可以从(request.getHeader(string name))报文头和(Get)URL也可以从(Post)报文体。
HttpServletRequest详解
views->api->utils
api层的js文件模块化被views层调用情况
1、我们首先要创建 XMLHttpRequest 对象
2、调用 .open 方法设置请求参数
3、调用 send 方法发送请求
4、在 send 方法前绑定 onreadystatechange 事件,处理请求完成后的操作。
axios 基于promise用于浏览器和node.js的http客户端。
axios是独立的项目,不是vue的一部分,经常使用vue和axios一起实现ajax功能。
用法:
axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Fred',
lastName: 'Flintstone'
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
优点:
作者:抽疯的稻草绳 链接:https://www.jianshu.com/p/89ba99fb7241 来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
package com.qlugcl.commonutils; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.HashMap; import java.util.Map; //统一返回Json结果的类 @Data public class R { @ApiModelProperty(value = "是否成功") private Boolean success; @ApiModelProperty(value = "返回码") private Integer code; @ApiModelProperty(value = "返回消息") private String message; @ApiModelProperty(value = "返回数据") private Map<String, Object> data = new HashMap<String, Object>(); //把构造方法私有,单例模式 private R() {} //成功静态方法 public static R ok() { R r = new R(); r.setSuccess(true); r.setCode(ResultCode.SUCCESS); r.setMessage("成功"); return r; } //失败静态方法 public static R error() { R r = new R(); r.setSuccess(false); r.setCode(ResultCode.ERROR); r.setMessage("失败"); return r; } //此处的this是调用该方法的bean public R success(Boolean success){ this.setSuccess(success); return this; } public R message(String message){ this.setMessage(message); return this; } public R code(Integer code){ this.setCode(code); return this; } public R data(String key, Object value){ this.data.put(key, value); return this; } public R data(Map<String, Object> map){ this.setData(map); return this; } // 返回this可以实现链式调用:R.ok().data("total",total).data("rows",records) }
前后端数据交互的本质:交互
函数方法传值多用于处理用户需求
函数传参一般是传递的数据量比较小比如id之类的(应用实例:下拉表)
对应最终get请求使用url进行小数据(id)与后端交互。
get方式只能通过url进行传参,@GetMapping和@Pathvariable配合使用。
v-model数据绑定传值多用于前端数据显示和用户表单信息填写
v-model传递的数据一般比较大比如对象之类的(应用实例:用户填写表单信息)
对应最终post请求使用http包的body进行大数据(json字符串)与后端交互。
注意:前端传递的对象属性名等还要和后端接口方法中的参数对象的属性名一致。
只有post方式可以接收大数据(json字符串),也只有@PostMapping可以使用@RequestBody进行对象传参,也可以使用ur传参@Pathvariable。
methods将后端数据赋值给前端data,然后element-ui组件通过v-for/bind/model和插值表达式{{}}显示前端data的值,最后进行vue和element-ui组件的数据交互。
前端data数据显示到element-ui组件上也是注意绑定的属性名一致,否则会导致不显示。
鼠标移动到组件标签上,VsCode自动会显示此组件所包含的属性以及可以绑定的属性类型还有使用说明等等下面的五种属性。
如图所示:根据回调参数可以实现功能。
多个不同类型前端可以使用同一个后端接口方法。
前端主要是渲染数据,后端主要是提供数据。
实际上MAC和Linux差不多都是类UNIX操作系统,软件开发或命令行远程操作服务器都很便捷,但是MAC图形化界面做的比较好方便日常娱乐办公,所以大多数开发者使用MAC,较大部分使用LInux,少部分使用Window。
Linux是网络操作系统
主要用于远程操作服务器或远程无线设备(ROS小车)
Linux是基于网络的,诞生于网络。
远程连接上SSH,你就可以轻松操控远在千里之外的Linux服务器,只要有相应的权限,几乎和坐在物理机面前没有区别,哪怕网速很糟糕,实际只是一些加密的字符在传送,需要的带宽很小。
任选一个云平台即可,推荐配置:
小心一点保证不会出错
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。