用VUE3写一个网络请求demo,用代码写如何写?
时间: 2023-03-07 15:17:16 浏览: 71
可以使用Vue CLI来创建一个Vue3项目,然后安装axios库,来发送网络请求: 1. 安装Vue CLI:npm install -g @vue/cli 2. 创建Vue3项目:vue create my-project 3. 安装axios:npm install axios 4. 发送网络请求:axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
相关问题
jfinal+vue+el写一个项目demo
好的,下面我将为您提供一个简单的demo示例,使用jfinal+vue+el来实现一个用户管理系统。
1. 准备工作
首先,需要安装Java环境和Maven工具。然后,创建一个Maven项目,并添加以下依赖:
```xml
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>4.9.06</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
```
2. 创建数据库表
在MySQL中创建一个名为user的表,包含以下字段:
- id
- username
- password
- nickname
- email
3. 创建后端代码
创建一个UserController类,用于处理用户相关的请求。
```java
public class UserController extends Controller {
public void index() {
render("index.html");
}
public void list() {
int pageNumber = getParaToInt("page");
int pageSize = getParaToInt("limit");
Page<User> userList = User.dao.paginate(pageNumber, pageSize, "select *", "from user");
renderJson(JSON.toJSONString(userList));
}
public void save() {
User user = getModel(User.class, "");
if (user.save()) {
renderJson(JSON.toJSONString(Result.success()));
} else {
renderJson(JSON.toJSONString(Result.failure("保存失败")));
}
}
public void update() {
User user = getModel(User.class, "");
if (user.update()) {
renderJson(JSON.toJSONString(Result.success()));
} else {
renderJson(JSON.toJSONString(Result.failure("更新失败")));
}
}
public void delete() {
Integer id = getParaToInt("id");
if (User.dao.deleteById(id)) {
renderJson(JSON.toJSONString(Result.success()));
} else {
renderJson(JSON.toJSONString(Result.failure("删除失败")));
}
}
}
```
创建一个User类,用于操作数据库。
```java
public class User extends Model<User> {
public static final User dao = new User().dao();
public Integer getId() {
return getInt("id");
}
public void setId(Integer id) {
set("id", id);
}
public String getUsername() {
return getStr("username");
}
public void setUsername(String username) {
set("username", username);
}
public String getPassword() {
return getStr("password");
}
public void setPassword(String password) {
set("password", password);
}
public String getNickname() {
return getStr("nickname");
}
public void setNickname(String nickname) {
set("nickname", nickname);
}
public String getEmail() {
return getStr("email");
}
public void setEmail(String email) {
set("email", email);
}
}
```
4. 创建前端代码
创建一个index.html文件,用于展示用户列表和添加用户。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Management System</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.15.1/theme-chalk/index.css">
</head>
<body>
<div id="app">
<el-container>
<el-header>
<h1 style="color: white">用户管理系统</h1>
</el-header>
<el-main>
<el-table :data="userList" border style="width: 100%">
<el-table-column label="ID" prop="id"></el-table-column>
<el-table-column label="用户名" prop="username"></el-table-column>
<el-table-column label="昵称" prop="nickname"></el-table-column>
<el-table-column label="邮箱" prop="email"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" @click="editUser(scope.row)">编辑</el-button>
<el-button type="danger" @click="deleteUser(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :total="total" :page-size="pageSize" :current-page.sync="currentPage" @current-change="getPage"></el-pagination>
<el-form :model="user" ref="userForm" label-width="80px" style="margin-top: 20px;">
<el-form-item label="用户名" prop="username">
<el-input v-model="user.username" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="user.password" placeholder="请输入密码"></el-input>
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input v-model="user.nickname" placeholder="请输入昵称"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="user.email" placeholder="请输入邮箱"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="saveUser">保存</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</el-main>
</el-container>
</div>
<script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
<script src="https://cdn.staticfile.org/element-ui/2.15.1/index.js"></script>
<script src="https://cdn.staticfile.org/axios/0.21.1/axios.min.js"></script>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
userList: [],
total: 0,
pageSize: 10,
currentPage: 1,
user: {
username: '',
password: '',
nickname: '',
email: ''
}
},
created: function () {
this.getPage(1);
},
methods: {
getPage: function (page) {
let _this = this;
axios.get('/user/list', {
params: {
page: page,
limit: _this.pageSize
}
}).then(function (response) {
_this.userList = response.data.list;
_this.total = response.data.total;
}).catch(function (error) {
console.log(error);
});
},
editUser: function (row) {
this.user = row;
},
deleteUser: function (row) {
let _this = this;
let id = row.id;
axios.post('/user/delete', {
id: id
}).then(function (response) {
_this.getPage(_this.currentPage);
}).catch(function (error) {
console.log(error);
});
},
saveUser: function () {
let _this = this;
this.$refs.userForm.validate(function (valid) {
if (valid) {
axios.post('/user/save', _this.user).then(function (response) {
_this.getPage(_this.currentPage);
_this.resetForm('userForm');
}).catch(function (error) {
console.log(error);
});
} else {
return false;
}
});
},
resetForm: function (formName) {
this.$refs[formName].resetFields();
this.user = {
username: '',
password: '',
nickname: '',
email: ''
};
}
}
});
</script>
</body>
</html>
```
5. 配置路由
在JFinalConfig类中配置路由。
```java
public class DemoConfig extends JFinalConfig {
@Override
public void configConstant(Constants me) {
me.setDevMode(true);
}
@Override
public void configRoute(Routes me) {
me.add("/user", UserController.class);
}
@Override
public void configPlugin(Plugins me) {
DruidPlugin dp = new DruidPlugin("jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf-8", "root", "123456");
me.add(dp);
ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
me.add(arp);
arp.addMapping("user", User.class);
}
@Override
public void configInterceptor(Interceptors me) {
}
@Override
public void configHandler(Handlers me) {
}
}
```
6. 运行项目
运行项目,访问http://localhost:8080/user/index即可看到用户管理系统页面。
用springboot+vue+mybatis写一个前后端登录注册
好的,下面我为您介绍如何使用Spring Boot、Vue和MyBatis实现前后端登录注册的功能。
### 环境搭建
首先,您需要在本地安装以下环境:
- JDK 1.8+
- Maven
- Node.js
- Vue CLI
- MySQL
### 创建数据库和表
在MySQL中创建一个名为“test”的数据库,然后创建一个名为“user”的表,用于存储用户信息。表结构如下:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
### 创建Spring Boot项目
使用Spring Initializr创建一个新的Spring Boot项目,并添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
```
### 配置数据源
在application.properties中添加以下配置:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
### 创建实体类和Mapper接口
在src/main/java目录下创建一个名为“com.example.demo”的包,然后创建一个名为“User”的实体类:
```java
public class User {
private Integer id;
private String username;
private String password;
// getter和setter方法省略
}
```
然后在同一包下创建一个名为“UserMapper”的Mapper接口:
```java
@Mapper
public interface UserMapper {
User selectByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
void insert(User user);
}
```
### 创建Controller
在com.example.demo包下创建一个名为“UserController”的Controller,用于处理前端发送的请求:
```java
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping("/login")
public User login(@RequestBody User user) {
return userMapper.selectByUsernameAndPassword(user.getUsername(), user.getPassword());
}
@PostMapping("/register")
public void register(@RequestBody User user) {
userMapper.insert(user);
}
}
```
### 创建Vue项目
使用Vue CLI创建一个新的Vue项目,然后在src/main/resources/static目录下添加以下文件:
- index.html
- main.js
- App.vue
- Login.vue
- Register.vue
其中,index.html作为Vue应用的入口文件,main.js作为Vue应用的入口脚本,App.vue为根组件,Login.vue和Register.vue分别为登录和注册页面的组件。
### 编写前端代码
在Login.vue中添加以下代码,用于发送登录请求:
```vue
<template>
<div>
<input type="text" v-model="username" placeholder="用户名">
<input type="password" v-model="password" placeholder="密码">
<button @click="login">登录</button>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
login() {
fetch('/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: this.username,
password: this.password
})
})
.then(response => response.json())
.then(user => console.log(user))
}
}
}
</script>
```
在Register.vue中添加以下代码,用于发送注册请求:
```vue
<template>
<div>
<input type="text" v-model="username" placeholder="用户名">
<input type="password" v-model="password" placeholder="密码">
<button @click="register">注册</button>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
register() {
fetch('/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: this.username,
password: this.password
})
})
}
}
}
</script>
```
### 启动项目
使用Maven将Spring Boot项目打包成jar包,然后在命令行中执行以下命令启动项目:
```
java -jar demo.jar
```
然后进入Vue项目所在的目录,执行以下命令启动前端服务器:
```
npm run serve
```
最后,在浏览器中访问http://localhost:8080,即可看到登录和注册页面。