Vue学习:8.v标签综合-强化版
通过前几节的认识和学习,我们掌握了常用v标签的用法,这一节再来巩固提高一下吧。
实例:成绩面板
实现功能:
主体由两大部分组成:表格+表单。这个表格可以显示多科成绩,并具有表头、删除以及底部统计功能。同时,在下方还有一个成绩输入表单,允许用户添加科目成绩,新添加的成绩会实时显示在表格中。
思路:
综合运用不同v标签的使用
代码:
html:
<div id="app">
<table>
<thead>
<tr>
<th>编号</th>
<th>科目</th>
<th>成绩</th>
<th>操作</th>
</tr>
</thead>
<!-- 表格主体部分:使用v-if/else切换不同显示-当表格为空时,显示“暂无数据” -->
<tbody v-if="list.length > 0">
<tr v-for="(item, index) in list" :key="item.id">
<td>{{ index+1 }}</td>
<td>{{ item.name }}</td>
<!-- 当成绩低于60分时,触发red类样式 -->
<td :class="{red: item.score < 60}">{{ item.score }}</td>
<!-- .prevent修饰符,阻止<a>标签的默认跳转行为 -->
<td><a @click.prevent="del(item.id)" href="">删除</a></td>
</tr>
</tbody>
<tbody v-else>
<tr>
<td colspan="5">暂无数据</td>
</tr>
</tbody>
<footer>
<tr>
<td colspan="5">
总分: {{ total }}
平均分:{{ mean }}
</td>
</tr>
</footer>
</table>
科目:<input v-model.trim="subject" placeholder="请输入科目">
<br>
分数:<input v-model.number="score" placeholder="请输入分数">
<br>
<button @click="add()">确认</button>
</div>
js:
<script>
const app = new Vue({
el: '#app',
data: {
list:[
{id: 1, name: '语文', score: 46},
{id: 7, name: '数学', score: 77},
{id: 13, name: '英语', score: 85},
{id: 14, name: '体育', score: 95},
],
subject: '',
score: ''
},
methods: {
del(id) {
console.log(id)
this.list = this.list.filter(item => item.id != id);
},
add() {
if(this.subject === ''){
alert('请输入科目名称!')
return
}
if(this.score > 100 || this.score < 0){
alert('请输入0-100内的成绩!')
return
}
// 数组的push()和unshift()都是在原数组的基础上操作
this.list.push({
id: +new Date(),
name: this.subject,
score: this.score
} )
}
},
computed: {
total(){
return this.list.reduce((sum,item) => sum + item.score, 0)
},
mean(){
if(this.list.length === 0){
return 0
}
return (this.total/this.list.length).toFixed(2)
}
}
})
</script>
css:
<style>
table{
width: 400px;
height: 300px;
border-collapse: collapse;
margin-bottom: 20px;
text-align: center;
}
th,td{
border:1px solid black;
}
.red{
color: red;
}
</style>
注意:
案例中还有很多小的注意,比如:当成绩小于60分时,成绩要高亮显示-这要求使用v-bind动态控制元素的样式;表单元素输入要求去首尾空格、字符转数字-要求使用v-model的修饰符trim和number;当成绩表格为空时要求显示“暂无数据”面板-可以使用v-if/else根据数据长度动态切换显示...
Vue学习:8.v标签综合-强化版的更多相关文章
- vue学习之template标签
HTML5提供的新标签,具有以下特性: 1.该元素天生display:none,同时模板元素内部内容也是隐藏的 2.位置任意,可以在<head>中,也可以在<body>或者&l ...
- vue学习笔记(二)——简单的介绍以及安装
学习编程需要的是 API+不断地练习^_^ Vue官网:https://cn.vuejs.org/ 菜鸟教程:http://www.runoob.com/vue2/vue-tutorial.html ...
- vue学习第一部
目录 基础操作 vue基础使用 步骤 vue的框架思想(mvvm) 显示数据 vue 常用指令 属性操作 事件绑定 操作样式 条件渲染指令 列表渲染指令 vue对象提供的属性功能 过滤器 计算和侦听属 ...
- Vue学习记录第一篇——Vue入门基础
前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...
- day 82 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
- day 81 Vue学习一之vue初识
Vue学习一之vue初识 本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js ...
- vue学习笔记(九)vue-cli中的组件通信
前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...
- vue学习笔记(十)路由
前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...
- Vue学习笔记十三:Vue+Bootstrap+vue-resource从接口获取数据库数据
目录 前言 SpringBoot提供后端接口 Entity类 JPA操作接口 配置文件 数据库表自动映射,添加数据 写提供数据的接口 跨域问题 前端修改 效果图 待续 前言 Vue学习笔记九的列表案例 ...
- Vue学习之vue-cli脚手架下载安装及配置
Vue学习之vue-cli脚手架下载安装及配置:https://www.cnblogs.com/clschao/articles/10650862.html 1. 先下载node.js,下载地址:ht ...
随机推荐
- 如果千百年前有视觉AI算法,世界将会是什么样的光景呢?
视觉AI算法在近些年取得了一定的突破,被应用在了越来越多的地方,我相信距离真正的AI普及这个大目标也越来越近了.我时常在想假如古代也有视觉AI算法,那是不是很多故事的结局都将被改写?<伯乐相马& ...
- 深入浅出eBPF|你要了解的7个核心问题
简介: 过去一年,ARMS基于eBPF技术打造了Kubernetes监控,提供多语言无侵入的应用性能,系统性能,网络性能观测能力,验证了eBPF技术的有效性.eBPF技术和生态发展很好,未来前景广大, ...
- 如何使用 Kubernetes 监测定位慢调用
简介:本次课程主要分为三大部分,首先将介绍慢调用的危害以及常见的原因:其次介绍慢调用的分析方法以及最佳实践:最后将通过几个案例来去演示一下慢调用的分析过程. 作者:李煌东 大家好,我是阿里云的李煌东 ...
- .NET周刊【4月第2期 2024-04-21】
国内文章 他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk[Homekit.Net]1.0.0发布,快来打造你的私人智能家居吧 https://www.cnblogs.com/h ...
- 2019-10-31-ASP.NET-Core-连接-GitLab-与-MatterMost-打造-devops-工具
title author date CreateTime categories ASP.NET Core 连接 GitLab 与 MatterMost 打造 devops 工具 lindexi 201 ...
- 2019-9-30-dotnet-枚举当前设备wifi热点
title author date CreateTime categories dotnet 枚举当前设备wifi热点 lindexi 2019-09-30 14:42:18 +0800 2019-9 ...
- Java Collection接口下的“ List 集合” 与 “ Set 集合 ”
Java Collection接口下的" List 集合" 与 " Set 集合 " 每博一文案 一个人最好的底牌,就这两个字: 靠谱,是最高级的聪明. 师父说 ...
- 简说python之初连ORACLE数据库
目录 Python操作Oracle数据库 1.安装cx_Oracle模块 2.安装oracle客户端 3.python操作oracle示例 4.配置TNS 5.通过tns连接数据库的python 通过 ...
- ctf_web
ctfshow web13 访问题目链接 一看是一道文件上传题,上传文件进行测试 上传php会显示 error suffix 因此推测会检测格式 当文件字数超出一定字数时,显示 error file ...
- 使用 JS 实现在浏览器控制台打印图片 console.image()
在前端开发过程中,调试的时候,我门会使用 console.log 等方式查看数据.但对于图片来说,仅靠展示的数据与结构,是无法想象出图片最终呈现的样子的. 虽然我们可以把图片数据通过 img 标签展示 ...