当前位置: 首页 > news >正文

VUE2课程计划表练习

在这里插入图片描述
主要练习数据变量对象
以下是修正后的完整代码:

//javascript
export default {data() {return {list: [{ id: '1', subject: 'Vue.js 前端实战开发', content: '学习指令,例如 v-if、v-for、v-model 等', place: '自习室', status: false }// 可以在这里添加更多项目...]}}
}

关键点
data() 现在返回一个包含 list 属性的对象
list 被正确定义为数组(使用方括号[])
对象属性使用引号包裹(更规范的写法)
每个对象之间使用逗号分隔(如果有多个对象)

index.html代码

<!DOCTYPE html>
<html lang=""><head><meta name="viewport" content="width=device-width, initial-scale=1.0" /><link href="css/bootstrap.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --></body>
</html>

APP.VUE组件代码

<template><div id=app><div class="card"><!-- 标题区域 --><div class="card-header">学习计划表</div><!-- 提交区域 --><div class="card-body"><form @submit.prevent="add"><div class="row g-4"><!-- 学习科目 --><div class="col-auto"><div class="input-group mb-3"><span class="input-group-text" id="basic-addon1">学习科目</span><input type="text"  class="form-control" placeholder="请输入学习科目"  v-model="subject"></div></div><!-- 学习任务 --><div class="col-auto"><div class="input-group mb-3"><span class="input-group-text" id="basic-addon1">学习内容</span><textareaclass="form-control" placeholder="请输入学习内容" style="height: 32px;" v-model="content"></textarea></div></div><!-- 学习地点 --><div class="col-auto"><div class="input-group mb-3"><span class="input-group-text" id="basic-addon1">学习地点</span><select class="form-select form-select-sm" v-model="selectedOption"><option v-for="option in options" :value="option.place" :key="option.placeCode">{{ option.place }}</option></select></div></div><!-- 添加按钮 --><div class="col-auto"><button type="submit" class="btn btn-primary">添加</button></div></div></form></div></div><table class="table table-striped table-hover table-bordered"><thead><tr><th scope="col">序号</th><th scope="col">学习科目</th><th scope="col">学习内容</th><th scope="col">学习地点</th><th scope="col">完成状态</th><th scope="col">操作</th></tr></thead><tbody><tr v-for="item in list" :key="item.id"><td>{{ item.id }}</td><td>{{ item.subject }}</td><td>{{ item.content }}</td><td>{{ item.place }}</td><td><div class="form-check form-switch"><input class="form-check-input" type="checkbox" role="switch" id="'cb' + item.id"v-model="item.status" /><label class="form-check-label" for="'cb' + item.id" v-if="item.status">已完成</label><label class="form-check-label" for="'cb' + item.id" v-else>未完成</label></div></td><td><a href="javascript:;" @click="remove(item.id,item.status)">删除</a></td></tr></tbody></table>
</div></template><script>export default{data(){return {subject:'',content:'',nextId:'',selectedOption:'自习室',           options:[{placeCode: 0,place: '自习室',},                {placeCode: 1,place: '图书馆',},                {placeCode: 2,place: '宿舍',}],list:[{id: '1',	subject: 'Vue.js 前端实战开发222',	content: '学习指令,例如 v-if、v-for、v-model 等',place: '自习室',status: false}]}},methods:{add(){// alert(1111122222)if (this.subject === '') {alert('学习科目为必填项!')return}this.nextId = Math.max(this.list.map(item => item.id)) + 1let obj = {id: this.nextId,subject: this.subject,content: this.content,place: this.selectedOption,status: false,}this.list.push(obj)this.subject = ''this.content = ''this.selectedOption = '自习室'},remove(id,status){// alert(id)if (status) {this.list =  this.list.filter(item => item.id !== id)} else {alert('请完成该学习计划后再进行删除操作!')}}}}</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;
}
</style>

相关文章:

  • LeetCode 3342.到达最后一个房间的最少时间 II:dijkstra算法(和I一样)
  • Linux 系统无法启动的排查与修复方案
  • C#黑魔法:鸭子类型(Duck Typing)
  • 实现strStr
  • python中,什么是协程?
  • 分享一款开源的图片去重软件 ImageContrastTools,基于Electron和hash算法
  • 蓝桥杯青少 图形化编程(Scratch)编程题每日一练——小猫的城堡
  • 机器学习-数据集划分和特征工程
  • Git clone时出现SSL certificate problem unable to get local issuer certificate
  • 2025-05-10-FFmepg库裁切有水印的视频
  • 系统思考:短期困境与长期收益
  • 嵌入式开发学习日志Day17
  • 设计模式-策略模式(Strategy Pattern)
  • VBA -- 学习Day4
  • 华为银河麒麟 V10(ARM)系统软件部署全攻略:Redis、RabbitMQ、MySQL 等集群搭建指南
  • Elasticsearch太重?它的超轻量的替代品找到了!
  • 华为OceanStor 5500 V3存储证书过期问题处理
  • lambda 表达式
  • 在一台CentOS服务器上开启多个MySQL服务
  • 【高并发】Celery + Redis异步任务队列方案提高OCR任务时的并发
  • 警方通报男子地铁上拍视频致乘客恐慌受伤:列车运行一度延误,已行拘
  • 会计江湖|年报披露关注什么:独董给出的“信号”
  • 98年服装“厂二代”:关税压力下,我仍相信中国供应链|湃客Talk
  • 奥园集团将召开债券持有人会议,拟调整“H20奥园2”本息兑付方案
  • 上海优化营商环境十大攻坚突破任务中,为何第一项是实施世行对标改革?
  • 明查|这是“C919迫降在农田”?实为飞机模型将用于科普体验