IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 2021-08-27 -> 正文阅读

[JavaScript知识库]2021-08-27

1.前后端调用

1.1请求类型说明

分组:

?????????get/delete? 用法一致

???????? post/put? ??? 用法一致

1.2 delete请求

前段页面编辑

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>前后端调用delete</title>
	</head>
	<body>
		<script src="../js/axios.js"></script>
		<script>
			// delete 测试1:需求:删除ID=232的数据
			let id=
			let url ="http://localhost:8090/axios/deleteById?id=${233}"
			axios.delete(url).then(promise => {
				console.log(promise.data)
			})
			
		</script>
	</body>
</html>

后端controller层

@DeleteMapping("deleteById")
    public String delete(Integer id){
        userService.deleteById(id);
        return "删除成功";
    }

业务层Service

@Override
    public void deleteById(Integer id) {
         userMapper.deleteById(id);
    }

执行结果

1.3 post请求

1.3.1 新增用户请求

url:请求地址:http://localhost:8090/axios/saveUser

请求参数的结构:是一个JSON串

?难点:

1.user对象可以转换成json串? @RestController中的@ResponseBody带的方法

2.json转换为user对象 @Requestbody? 自能加在对象前

controller层代码

 @PostMapping("saveUser")
    public String saveUser(@RequestBody User user){
        userService.saveUser(user);
        return "添加成功";
    }

?service业务层代码:

 @Override
    public void saveUser(User user) {
        userMapper.insert(user);
    }

前段页面编辑:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>post请求</title>
	</head>
	<body>
		<h1>前后端调用 -POST请求测试</h1>
		<script src="../js/axios.js"></script>
		<script>
			
			/*
			需求:实现用户新增操作
			语法:axious.post(url,新增参数)
			规则:如果post/put 传递对象则直接赋值
			*/
		   let user={
			   name:'小燕子',
			   age:18,
			   sex:'女'
		   }
		   let url="http://localhost:8090/axios/saveUser"
		   axios.post(url,user)//{param : user}只适用于get与delete
		   .then(promise =>{
			   console.log(promise.data)
		   })
		</script>
	</body>
</html>

post请求结构:

1.4 put请求

2 vue-Axios案例

2.1需求说明

1.当展现页面时,用户发起请求 http://localhost:8090/vue/findAll,获取所有的user数据

2.通过Vue.js要求在页面上展现数据,以表格的形式展现

3.为每行数据添加 修改/删除的按钮

4.在一个新的div中? 编辑3个文本框 name/age/sex通过提交按钮实现新增

5.如果用户点击修改按钮,则在全新的div中,回显数据。

6.用户修改完数据后,通过提交按钮 实现数据的修改。

?7.当用户点击删除按钮时,要求实现数据的删除的操作。

2.2 知识点梳理

1.vue页面初始化时,如何发起ajax请求

methods:{
					getUserList(){
						alert("查询数据!")
					}
				},created(){  //利用声明周期函数触发ajax
					alert("声明周期函数")
					this.getUserList()
				}

2. vue定义axios请求的前缀

axios.defaults.baseURL ="http://localhost:8090/vue"

3.axios与vue数据结合

说明:当通过axios获取服务器数据之后,应该将该数据传给vue.data的属性

4.用户输入双向绑定

说明:在vue.js中一般情况下,如果遇到了用户输入的情况下需要设置双向数据绑定

3.案例(总结)

1.查询demo_user表中所有的表记录?? get(url)

前段代码步骤

a.导入jar包 vue.js??? ajax.js

b.在<script></scrpit>标签中加入??? axios.defaults.baseURL="http://localhost:8090/vue" 可以简化url的写法,不用每个操作都添加这部分地址

c.使用循环进行遍历,将结果赋予表格中? v-for(user in userList)??? v-text("user.属性")

2.增加记录? post(url,user)

3.删除记录 delete(url+user.id)? 通过id删除

4.修改记录 put(url+新user)?

前段代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		<div id="app">
			<!-- 新增 -->
			<div align="center">
				<h3>用户新增</h3>
				姓名:<input type="text" v-model="addUser.name"/>
				年龄:<input type="text" v-model="addUser.age"/>
				性别:<input type="text" v-model="addUser.sex"/>
				<button @click="addUserBtn()">添加</button>
			</div>
			<!-- 修改 -->
			<div align="center" >
				<h3>用户修改</h3>
				编号: <input type="text" v-model="newUser.id" />
				姓名:<input type="text"  v-model="newUser.name"/>
				年龄:<input type="text"  v-model="newUser.age"/>
				性别:<input type="text" v-model="newUser.sex"/>
				<button @click="update2()">修改</button>
			</div>
			<div>
				<table border="1px" width="80%" align="center" style="margin-top: 20px;">
					<tr align="center">
						<th colspan="5"><h3>用户列表</h3></th>
					</tr>
					<tr align="center">
						<th>编号</th>
						<th>姓名</th>
						<th>年龄</th>
						<th>性别</th>
						<th>操作</th>
					</tr>
					<tr align="center" v-for="user in userList">
						<th v-text="user.id"></th>
						<th v-text="user.name"></th>
						<th v-text="user.age"></th>
						<th v-text="user.sex"></th>
						<th>
							<button @click="update1(user)">修改</button>
							<button @click="deleteUser(user)">删除</button>
						</th>
					</tr>
				</table>
			</div>
		</div>
		
		<script src="../js/axios.js"></script>
		<script src="../js/vue.js"></script>
		
		<script>
			axios.defaults.baseURL="http://localhost:8090/vue"
			new Vue({
				el:"#app",
				data:{
				userList:[],
				addUser:{
					name:'',
					age:'',
					sex:''
					},
				newUser:{
					id:'',
					name:'',
					age:'',
					sex:''
				}
				},
				
				methods:{
					getUserList(){
						alert("用户表如下:")
						axios.get("findAll").then(promise =>{
							this.userList= promise.data
						})
					},addUserBtn(){
						axios.post("saveUser",this.addUser).then(promise =>{
						 	let c = promise.data
							alert(c)
							this.getUserList()
							this.addUser={}
						})
					},deleteUser(user){
						axios.delete("deleteUserById?id="+user.id).then(promise =>{
							let a = promise.data
							alert(a)
						this.getUserList()
						})
					},update1(user){
						this.newUser=user
					},update2(){
						axios.put("updateById",this.newUser).then(promise =>{
							let c = promise.data
							alert(c)
							this.getUserList()
							this.newUser={}
						})
					}
				},
				created() {
					this.getUserList()
				}
			})
		</script>
	</body>
</html>

后端代码:

controller层

package com.jt.controller;

import com.jt.Service.UserService;
import com.jt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
@CrossOrigin
@RequestMapping("vue")
public class ProController {
    @Autowired
    private UserService userService;

    @GetMapping("findAll")
    public List<User> findAll(){
        return userService.findAll();
    }
    @PostMapping("saveUser")
    public String addUser(@RequestBody User user){
        userService.addUser(user);
        return "添加成功";
    }
    @DeleteMapping("deleteUserById")
    public String deleteUserById(Integer id){
        userService.deleteById(id);
        return "删除成功";
    }
    @PutMapping("updateById")
    public String updateById(@RequestBody User user){
        userService.updateById(user);
        return "修改成功!!";
    }
}

service层

@Override
    public List<User> findAll() {
        return userMapper.selectList(null);
    }
@Override
    public void addUser(User user) {
        userMapper.insert(user);
    }
@Override
    public void deleteById(Integer id) {
         userMapper.deleteById(id);
    }
 @Override
    public void updateById(User user) {
        userMapper.updateById(user);
    }

运行结果:

?新增:

删除:

修改:

?

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 08:56:16  更:2021-08-28 08:56:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 5:31:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计