用v-for,v-if,v-model完成学习计划表
时间: 2024-10-21 13:09:23 浏览: 31
在Vue.js中,你可以使用`v-for`指令来遍历数据列表,创建动态的学习计划表格;`v-if`用于条件渲染,可以根据某个规则显示或隐藏特定行;而`v-model`则可以双向绑定输入字段和数据模型,方便用户编辑。
下面是一个简单的例子,假设有一个数组`learningPlans`存储了每个学习任务的信息:
```html
<template>
<table>
<thead>
<tr>
<th>日期</th>
<th>课程</th>
<th>目标</th>
<th>进度</th>
</tr>
</thead>
<tbody>
<tr v-for="plan in learningPlans" :key="plan.id">
<td v-if="plan.date">{{ plan.date }}</td>
<td v-model="plan.course">{{ plan.course }}</td>
<td>{{ plan.goal }}</td>
<td><input type="range" v-model="plan.progress" min="0" max="100"></td>
<!-- 使用v-if展示进度条,根据实际情况添加 -->
<td v-if="plan.showProgress">【{{ plan.progress }}%】</td>
</tr>
</tbody>
</table>
</template>
<script>
export default {
data() {
return {
learningPlans: [
{ id: 1, date: '2023-01-01', course: 'JavaScript', goal: '基础理解', progress: 50 },
{ id: 2, date: '', course: 'Vue', goal: '组件开发', showProgress: false }
]
};
}
};
</script>
```
在这个例子中:
- `v-for`循环遍历每个`learningPlan`对象,生成一行表格。
- `v-model`将`course`字段连接到输入框,输入内容会实时更新到数组中对应的元素。
- `v-if`用于控制是否显示日期列和进度条列。如果`plan.showProgress`为`true`,则显示进度信息。
阅读全文