html用v-for,v-if,v-model完成“学习计划表”用于对学习计划进行管理,包括对学习计划进行添加、删除、修改等操作,
时间: 2024-10-21 17:14:31 浏览: 11
vue2和vue3的v-if与v-for优先级对比学习
HTML结合Vue.js中的`v-for`, `v-if`, 和 `v-model`可以构建一个动态的学习计划表格,用于管理用户的学习计划。以下是一个简单的例子:
```html
<template>
<div class="learning-plan">
<table>
<thead>
<tr>
<th>任务</th>
<th>日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(plan, index) in plans" :key="index">
<td>{{ plan.task }}</td>
<td>{{ plan.date }}</td>
<td>
<!-- 添加按钮 -->
<button @click="addPlan(index)">+</button>
<!-- 删除按钮 -->
<button v-if="index > 0" @click="removePlan(index)">-</button>
<!-- 编辑按钮 -->
<button @click="editPlan(index)">编辑</button>
</td>
</tr>
</tbody>
</table>
<!-- 新建学习计划输入框 -->
<form @submit.prevent="addNewPlan">
<input type="text" v-model="newPlan.task" placeholder="请输入任务">
<input type="date" v-model="newPlan.date" placeholder="请选择日期">
<button type="submit">添加</button>
</form>
</div>
</template>
<script>
export default {
data() {
return {
plans: [],
newPlan: {
task: '',
date: ''
}
};
},
methods: {
addPlan(index) {
// 这里会创建一个新的学习计划并添加到plans数组中
this.plans.splice(index + 1, 0, { task: '', date: '' });
},
removePlan(index) {
if (index > 0) {
this.plans.splice(index, 1);
}
},
editPlan(index) {
// 修改对应索引的计划数据,比如设置为模态框显示并处理更新操作
},
addNewPlan() {
// 如果输入的数据不为空,则添加新的计划到plans数组,并清空新建计划的输入
if (this.newPlan.task && this.newPlan.date) {
this.plans.push(this.newPlan);
this.newPlan = { task: '', date: '' };
}
}
}
};
</script>
```
在这个例子中,`v-for`遍历存储在`plans`数组中的学习计划,`v-model`用于双向绑定输入字段的值。`v-if`则用于控制删除按钮是否可见,防止在列表的第一个条目上显示。
阅读全文