天天看点

day08--async-await 操作+VUE+Axios案例

-1.async-await 操作

* axios的get请求语法
	 * 知识点:
	 * 1.箭头函数 主要简化回调函数的写法
	 * 规则: 如果参数只有一个则括号可以省略	
           
<script>
			let url = "http://localhost:8080/axios/getUserId?id=100"
			axios.get(url)
			.then(
			result =>{
				alert(result.data)
			})
</script>
           
* 	2.async-await简化  解构赋值
	 * 	2.1 async 需要标识函数
	 * 	2.2 await 需要标识ajax请求
	 *  上述的操作可以将多行js 封装为一行执行 简化代码操作
	 *  通过下列的配置简化 Ajax请求的路径
	 *  axios.defaults.baseURL = "http://localhost:8080/"
           
//1.定义方法
			//为ajax添加前缀
			axios.defaults.baseURL="http://localhost:8080"
			async function getUserId(){
				let url = "/axios/getUserId?id=100"
				//let promise = await axios.get(url)
				//	alert(promise.data) 解构赋值 ,提取对象中有价值的数据
				let {data: reda,status: code} = await axios.get(url)
				console.log(code)
				console.log(reda)
				}
			//2.调用方法
			getUserId();
           

2. VUE+Axios案例

说明:

  1. 利用VUE.js构建页面
  2. 利用Axios实现userList数据的获取, 利用VUE.js展现列表信息
  3. 完成页面数据的删除操作
  4. 完成页面数据的修改操作

2.0请求类型

day08--async-await 操作+VUE+Axios案例

请求的类型是由程序员手动控制

分类A

1.get 请求类型 查询

2.delete 请求类型 删除

分类B

1.post 请求类型 form表单提交 新增操作

2.put 请求类型 更新操作

2.1绘制前端页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>永花列表demo</title>
	</head>
	
	<script>
		

	</script>
	<body>
		<div id="app">
			<div align="center">
				<h1 align="center">用户新增</h1>
					名称: <input type="text" v-model.trim="addUser.name"/>
					年龄: <input type="text" v-model.number="addUser.age"/>
					性别: <input type="text" v-model.trim="addUser.sex"/>
					<button @click="insertUserList">新增</button>
			</div>

			<!-- <button @click="getUserList" >获取数据</button> -->
			<br>
			<table id="tab1" border="1pcx" align="center" width="80%">
				<tr><td colspan="5" align="center"><h1>用户列表</h1></td></tr>
				<tr>
					<td align="center">编号</td>
					<td align="center">姓名</td>
					<td align="center">年龄</td>
					<td align="center">性别</td>
					<td align="center">操作</td>
				</tr>
				<!-- 指令: 可以循环数据+标签  v-for -->
				<tr align="center" v-for="user in userList">
					<td v-text="user.id"></td>
					<td v-text="user.name"></td>
					<td v-text="user.age"></td>
					<td v-text="user.sex"></td>
					
					<td><button>修改</button>
					<button @click="deleteUser(user.id)">删除</button></td>
				</tr>
			</table>
		</div>
		
		
		<script src="../js/vue.js"></script>
		<script src="../js/axios.js"></script>
		<!-- 
		需求分析:
		  1.当用户打开页面 ajax请求
		 
		 -->
		<script>
			//设置前缀
			axios.defaults.baseURL="http://localhost:8080"
			const app = new Vue({
				el: "#app",
				data: {
					id: 0 ,
					userList: [],
					addUser: {
						
						name: '',
						age: 0,
						sex: ''
					}
				},
				methods: {
				//get 后台服务器数据
				async getUserList(){
					let url = "/vue/getUserList"
					let {data: result} = await axios.get(url)
						//console.log(result)
						this.userList = result
				},
				//POST,新增用户
				async insertUserList(){
					let url = "/vue/insertUser"
					let {data: result} = await axios.post(url,this.addUser)
						alert(result);
						//重新刷新
						this.getUserList();
				},
				//delete 根据id删除
				async deleteUser(id){
					let url = `/vue/deleteUser?id=${id}`
					let {data: result} = await axios.delete(url)
						alert(result);
						this.getUserList();
				}
				},
				//调用生命周期函数
				mounted(){
					//console.log(1)
					//初始化时调用.getUserList()
					this.getUserList();
				} 
			})
			
		</script>
	</body>
</html>

           

2.2 编辑VueController

package com.jt.vueContorller;

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

import java.util.List;

@RestController
@CrossOrigin
public class VueController {
    @Autowired
    private Usersevice usersevice;
    //展现所有用户信息/vue/getUserList
    @GetMapping("/vue/getUserList")
    public List<User> getUserList(){
        return usersevice.getAll();
    }
    // 新增用户 /vue/insertUser
    @PostMapping("/vue/insertUser")
    public String insertUser(@RequestBody User user){

        usersevice.insertUser(user);
        System.out.println("添加成功");
        return "添加成功";
    }
    //删除用户/vue/deleteUser?id=${id}
    @DeleteMapping("/vue/deleteUser")
    public String deleteUser(Integer id){
        usersevice.deleteId(id);
        System.out.println("删除成功");
        return "删除成功"+id;
    }

}

           

2.3编辑UserService

package com.jt.service;

import com.jt.mapper.UserMapper;
import com.jt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class UsersevriceImpl implements Usersevice {

    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> getAll() {
        return userMapper.selectList(null);
    }

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

    }

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

}