Vue.js实现学生信息的增、删、查。具体求描述如下所示: (1)定义一个列表,并渲染到网页上。 (2)添加新的列表项。 (3)删除指定的列表项。 (4)实现搜索功能。 (5)使用filters过滤器
时间: 2024-11-13 19:23:36 浏览: 9
在Vue.js中实现学生信息的增删查操作,可以按照以下步骤进行:
1. **定义数据结构**:
首先,在Vue实例中创建一个数组`students`来存储学生信息,例如:
```javascript
data() {
return {
students: [],
newStudent: { name: '', id: '' } // 新建学生的临时对象
}
},
```
2. **模板部分**:
- 使用v-for遍历`students`数组渲染列表:
```html
<ul>
<li v-for="(student, index) in students" :key="index">
{{ student.name }} - {{ student.id }}
<button @click="deleteStudent(index)">删除</button>
<input type="text" v-model="student.name" placeholder="姓名">
<input type="text" v-model="student.id" placeholder="ID">
</li>
</ul>
```
- 添加按钮用于添加新学生:
```html
<form @submit.prevent="addStudent">
<input type="text" v-model="newStudent.name" placeholder="姓名">
<input type="text" v-model="newStudent.id" placeholder="ID">
<button type="submit">添加</button>
</form>
```
3. **方法实现**:
- `addStudent`方法处理新学生的添加:
```javascript
methods: {
addStudent() {
if (this.newStudent.name && this.newStudent.id) {
this.students.push(this.newStudent);
this.newStudent = { name: '', id: '' };
}
},
deleteStudent(index) {
this.students.splice(index, 1);
}
}
```
4. **搜索功能**:
- 添加一个输入框用于搜索:
```html
<input type="text" v-model="searchQuery" placeholder="搜索">
```
- 更新列表只显示匹配查询的学生:
```javascript
computed: {
filteredStudents() {
return this.students.filter(student =>
student.name.includes(this.searchQuery) || student.id.includes(this.searchQuery)
);
}
}
```
更新模板中v-for的绑定:
```html
<ul>
<li v-for="(student, index) in filteredStudents" :key="index">
...
</li>
</ul>
```
5. **使用filters**:
如果需要对数据进行简单的格式化或计算,可以定义filter:
```javascript
filters: {
capitalize(text) {
return text.charAt(0).toUpperCase() + text.slice(1);
}
}
```
现在可以在模板中直接应用filter,如`{{ student.name | capitalize }}`。
阅读全文