HTML使用vue连接后台写出增删改查的实例
时间: 2023-08-15 13:07:08 浏览: 94
好的,以下是一个使用Vue和后端API进行增删改查的简单示例:
1. 首先,我们需要安装Vue和Axios,可以使用以下命令:
```
npm install vue axios --save
```
2. 在Vue组件中,我们需要定义一些数据和方法来处理与后端API的交互。以下是一个示例组件:
```html
<template>
<div>
<h1>用户列表</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮箱</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="user in users" :key="user.id">
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.email }}</td>
<td>
<button @click="editUser(user)">编辑</button>
<button @click="deleteUser(user)">删除</button>
</td>
</tr>
</tbody>
</table>
<form v-if="editingUser" @submit.prevent="saveUser">
<label>姓名</label>
<input v-model="editingUser.name" required>
<label>邮箱</label>
<input v-model="editingUser.email" required>
<button type="submit">保存</button>
<button type="button" @click="cancelEdit">取消</button>
</form>
<form v-else @submit.prevent="addUser">
<label>姓名</label>
<input v-model="newUser.name" required>
<label>邮箱</label>
<input v-model="newUser.email" required>
<button type="submit">添加</button>
</form>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
users: [],
newUser: {
name: '',
email: '',
},
editingUser: null,
};
},
created() {
this.loadUsers();
},
methods: {
loadUsers() {
axios.get('/api/users')
.then(response => {
this.users = response.data;
})
.catch(error => {
console.error(error);
});
},
addUser() {
axios.post('/api/users', this.newUser)
.then(response => {
this.users.push(response.data);
this.newUser = {
name: '',
email: '',
};
})
.catch(error => {
console.error(error);
});
},
editUser(user) {
this.editingUser = { ...user };
},
saveUser() {
axios.put(`/api/users/${this.editingUser.id}`, this.editingUser)
.then(response => {
const index = this.users.findIndex(user => user.id === response.data.id);
this.users.splice(index, 1, response.data);
this.editingUser = null;
})
.catch(error => {
console.error(error);
});
},
cancelEdit() {
this.editingUser = null;
},
deleteUser(user) {
axios.delete(`/api/users/${user.id}`)
.then(() => {
const index = this.users.findIndex(u => u.id === user.id);
this.users.splice(index, 1);
})
.catch(error => {
console.error(error);
});
},
},
};
</script>
```
3. 在这个示例中,我们假设后端API提供以下路由:
- GET /api/users:获取所有用户列表
- POST /api/users:添加一个新用户
- GET /api/users/:id:获取特定ID的用户信息
- PUT /api/users/:id:更新特定ID的用户信息
- DELETE /api/users/:id:删除特定ID的用户
4. 在Vue应用程序中,我们需要将这些API路由与实际URL相匹配。可以使用以下代码:
```javascript
axios.defaults.baseURL = 'http://localhost:3000';
```
5. 最后,我们可以在Vue应用程序中使用组件:
```html
<template>
<div>
<user-list></user-list>
</div>
</template>
<script>
import UserList from './UserList.vue';
export default {
components: {
UserList,
},
};
</script>
```
6. 在这个示例中,我们将用户列表组件注册为一个Vue组件,并将其添加到应用程序中。当应用程序启动时,它将自动加载用户列表并向用户显示。
阅读全文