Vue 指令demo
时间:2019-12-18
本文章向大家介绍Vue 指令demo,主要包括Vue 指令demo使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
有如下成绩单数据
scores = [
{ name: 'Bob', math: 97, chinese: 89, english: 67 },
{ name: 'Tom', math: 67, chinese: 52, english: 98 },
{ name: 'Jerry', math: 72, chinese: 87, english: 89 },
{ name: 'Ben', math: 92, chinese: 87, english: 59 },
{ name: 'Chan', math: 47, chinese: 85, english: 92 },]
1、用table表格标签渲染以上数据,表格第一列是学生总分排名,最后一列是学生总分;
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<table class="table table-hover" border="1" align="center" cellspacing="1" cellpadding="10">
<tr>
<th>rand</th>
<th>name</th>
<th>math</th>
<th>chinese</th>
<th>english</th>
<th>total</th>
</tr>
<tr v-for="(score,i) in scores">
<td align="center">{{ i }}</td>
<td v-for="v in score" align="center">{{ v }}</td>
</tr>
</table>
</div>
</body>
<script src="js/vue.js"></script>
<script>
let scores = [
{ name: 'Bob', math: 97, chinese: 89, english: 67 },
{ name: 'Tom', math: 67, chinese: 52, english: 98 },
{ name: 'Jerry', math: 72, chinese: 87, english: 89 },
{ name: 'Ben', math: 92, chinese: 87, english: 59 },
{ name: 'Chan', math: 47, chinese: 85, english: 92 },
];
for(score of scores){
score.total = score.math + score.chinese + score.english
}
console.log(scores);
for (let i=0; i<scores.length-1; i++){
for (let j=0; j<scores.length-1-i; j++){
if (scores[j].total < scores[j+1].total){
let temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
console.log(scores);
new Vue({
el:'#app',
data:{
scores,
}
})
</script>
</html>
2、还是采用上方相同的数据,采用相同的渲染规则,只渲染所有科目都及格了的学生。
给1中的<tr v-for="(score,i) in scores"> 加上v-if="score.math>=60 && score.chinese>=60 && score.english>=60"
如下所示:
<tr v-for="(score,i) in scores" v-if="score.math>=60 && score.chinese>=60 && score.english>=60">
3、还是采用上方相同的数据,添加筛选规则:
1)有三个按钮:语文、数学、外语,点击谁谁高亮,且当前筛选规则采用哪门学科
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.active{
background: pink;
}
</style>
</head>
<body>
<div id="app">
<div align="center">
<button @click="field='math'" :class="{active: field === 'math'}">math</button>
<button @click="field='chinese'" :class="{active: field === 'chinese'}">chniese</button>
<button @click="field='english'" :class="{active: field === 'english'}">english</button>
</div>
<br>
<table class="table table-hover" border="1" align="center" cellspacing="1" cellpadding="10">
<tr>
<th>rand</th>
<th>name</th>
<th >math</th>
<th >chinese</th>
<th >english</th>
<th>total</th>
</tr>
<tr v-for="(score,i) in scores" v-if="score.math>=60 && score.chinese>=60 && score.english>=60">
<td align="center">{{ i+1 }}</td>
<td v-for="v in score" align="center" >{{ v }}</td>
</tr>
</table>
</div>
</body>
<script src="js/vue.js"></script>
<script>
let scores = [
{ name: 'Bob', math: 97, chinese: 89, english: 67 },
{ name: 'Tom', math: 67, chinese: 52, english: 98 },
{ name: 'Jerry', math: 72, chinese: 87, english: 89 },
{ name: 'Ben', math: 92, chinese: 87, english: 59 },
{ name: 'Chan', math: 47, chinese: 85, english: 92 },
];
for(score of scores){
score.total = score.math + score.chinese + score.english
}
console.log(scores);
for (let i=0; i<scores.length-1; i++){
for (let j=0; j<scores.length-1-i; j++){
if (scores[j].total < scores[j+1].total){
let temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
console.log(scores);
new Vue({
el:'#app',
data:{
scores,
field:'',
}
})
</script>
</html>
2)两个输入框,【】~【】,前面天最小分数,后面填最大分数,全部设置完毕后,表格的数据会被更新只渲染满足所有条件的结果
举例:点击语文,输入【86】~【87】,那就只会渲染Jerry和Ben两条数据
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.active{
background: pink;
}
</style>
</head>
<body>
<div id="app">
<div align="center">
<button @click="field='math'" :class="{active: field === 'math'}">math</button>
<button @click="field='chinese'" :class="{active: field === 'chinese'}">chniese</button>
<button @click="field='english'" :class="{active: field === 'english'}">english</button>
<br>
<input type="number" min="0" max="100" v-model="min">
~
<input type="number" min="0" max="100" v-model="max">
</div>
<br>
<table class="table table-hover" border="1" align="center" cellspacing="1" cellpadding="10">
<tr>
<th>rand</th>
<th>name</th>
<th >math</th>
<th >chinese</th>
<th >english</th>
<th>total</th>
</tr>
<tbody v-if="field==='math'">
<tr v-for="(score,i) in scores" v-if="score.math>=min && score.math<=max || (!min||!max)">
<td align="center">{{ i+1 }}</td>
<td v-for="v in score" align="center" >{{ v }}</td>
</tr>
</tbody>
<tbody v-else-if="field==='chinese'">
<tr v-for="(score,i) in scores" v-if="score.chinese>=min && score.chinese<=max || (!min||!max)">
<td align="center">{{ i+1 }}</td>
<td v-for="v in score" align="center" >{{ v }}</td>
</tr>
</tbody>
<tbody v-else-if="field==='english'">
<tr v-for="(score,i) in scores" v-if="score.english>=min && score.english<=max || (!min||!max)">
<td align="center">{{ i+1 }}</td>
<td v-for="v in score" align="center" >{{ v }}</td>
</tr>
</tbody>
<tbody v-else>
<tr v-for="(score,i) in scores" >
<td align="center">{{ i+1 }}</td>
<td v-for="v in score" align="center" >{{ v }}</td>
</tr>
</tbody>
</table>
</div>
</body>
<script src="js/vue.js"></script>
<script>
let scores = [
{ name: 'Bob', math: 97, chinese: 89, english: 67 },
{ name: 'Tom', math: 67, chinese: 52, english: 98 },
{ name: 'Jerry', math: 72, chinese: 87, english: 89 },
{ name: 'Ben', math: 92, chinese: 87, english: 59 },
{ name: 'Chan', math: 47, chinese: 85, english: 92 },
];
for(score of scores){
score.total = score.math + score.chinese + score.english
}
console.log(scores);
for (let i=0; i<scores.length-1; i++){
for (let j=0; j<scores.length-1-i; j++){
if (scores[j].total < scores[j+1].total){
let temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
console.log(scores);
new Vue({
el:'#app',
data:{
scores,
field:'',
min:'',
max:'',
}
})
</script>
</html>
原文地址:https://www.cnblogs.com/allenchen168/p/12061704.html
- 嵌入式数据库Perst
- USB 设备的PID-Product ID,VID-Vendor ID
- Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由
- IIS7上部署Asp.Net4.0时UrlRouting的若干问题
- As3.0中的反射
- 域名yg.cc以10.2万元的价格结拍,可搭建“摇滚”音乐平台
- 修改 Windows Host 文件工具
- win7下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化”
- WCF和ASP.NET Web API 接口执行时间监控
- 额的神啊:AS3中Button被disable了,也会触发Click事件!
- [原创]CI持续集成系统环境---部署gerrit环境完整记录
- CentOS设置Mono环境变量
- 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控
- 从APM角度上看:NoSQL和关系数据库并无不同
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用Windows电脑训练深度学习模型?超详细配置教程来了
- Angular No provider for EffectsRootModule错误消息
- Leetcode No.15 三数之和
- 正则表达式介绍与使用
- Angular StoreFeatureModule
- Angular Component之间的事件通知机制
- 如何将你的Python项目全面自动化?
- 正则表达式介绍与使用
- Angular ERROR NullInjectorError: R3InjectorError(AppModule)的错误分析
- 2.4-Air302(NB-IOT)-基础外设-延时,定时器
- Shell正则表达式一览表
- YAML基础语法
- 详解Kubernetes存储体系
- Python3 正则表达式特殊符号及用法.md
- Web网页响应式布局.md