请用vue实现用户管理增删改查功能
时间: 2023-06-29 08:04:07 浏览: 126
好的,我可以给你提供一个简单的用户管理系统的示例代码,使用 Vue.js 和 Axios 进行前后端交互。
首先,我们需要创建一个 Vue 实例,并在模板中渲染用户列表和添加用户表单。代码如下:
```html
<div id="app">
<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.age }}</td>
<td>
<button @click="editUser(user)">编辑</button>
<button @click="deleteUser(user)">删除</button>
</td>
</tr>
</tbody>
</table>
<h2>添加用户</h2>
<form @submit.prevent="addUser">
<label>姓名:<input type="text" v-model="newUser.name"></label>
<label>年龄:<input type="number" v-model.number="newUser.age"></label>
<button type="submit">添加</button>
</form>
</div>
```
在 Vue 实例中,我们需要定义数据和方法,以及在 created 钩子中获取用户列表。
```javascript
new Vue({
el: '#app',
data: {
users: [],
newUser: { name: '', age: '' },
editingUser: null
},
methods: {
getUsers() {
axios.get('/api/users').then(response => {
this.users = response.data
})
},
addUser() {
axios.post('/api/users', this.newUser).then(response => {
this.users.push(response.data)
this.newUser = { name: '', age: '' }
})
},
editUser(user) {
this.editingUser = user
this.newUser = { name: user.name, age: user.age }
},
updateUser() {
axios.put(`/api/users/${this.editingUser.id}`, this.newUser).then(response => {
Object.assign(this.editingUser, response.data)
this.cancelEdit()
})
},
cancelEdit() {
this.editingUser = null
this.newUser = { name: '', age: '' }
},
deleteUser(user) {
axios.delete(`/api/users/${user.id}`).then(() => {
this.users.splice(this.users.indexOf(user), 1)
})
}
},
created() {
this.getUsers()
}
})
```
以上代码中,我们通过 Axios 库发送 HTTP 请求,并根据请求结果更新用户列表或添加/更新/删除用户。在编辑用户时,我们保存正在编辑的用户,并将其信息填充到添加用户表单中,然后在更新用户时将新的用户信息发送到服务器。在取消编辑时,我们将正在编辑的用户重置为 null,将添加用户表单重置为空。
以上是一个简单的用户管理系统示例,可以根据需要进行扩展和优化。
阅读全文