这篇文章主要讲解了vue实现简单学生信息管理的代码解析,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生信息管理</title>
<link rel="stylesheet" href="./lib/bootstrap.css" >
<script src="./lib/vue.js"></script>
<style type="text/css">
#app{
margin: 10px;
}
</style>
</head>
<body>
<div id="app">
<form class="form-inline">
<div class="form-group">
<label>学号:</label>
<input type="text" class="form-control" v-model="stuNo">
</div>
<div class="form-group">
<label>姓名:</label>
<input type="email" class="form-control" v-model="name" @keyup.enter="add">
</div>
<input type="button" class="btn btn-primary" value="添加" @click="add">
<div class="form-group">
<label>搜索姓名关键字:</label>
<input type="email" class="form-control" v-model="keywords" @keyup.enter="search(keywords)" v-focus>
</div>
</form>
<br/>
<table class="table table-bordered" >
<thead>
<th>学号</th>
<th>姓名</th>
<th>添加时间</th>
<th>操作</th>
</thead>
<tbody v-for="(item,i) in search(keywords)" :key="item.stuNo" >
<tr>
<td>{{item.stuNo}}</td>
<td>{{item.name}}</td>
<td>{{item.cTime | dateFormat}}</td>
<td><a href="" @click.prevent=" del(item.stuNo)">删除</a></td>
</tr>
</tbody>
</table>
</div>
<script>
// 自定义自动获取焦点的全局指令
Vue.directive('focus',{
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus()
}
})
var vm = new Vue({
el:'#app',
data:{
stuNo:'',
name:'',
keywords:'',
list:[
{
stuNo:1710204016,
name:'刘小红',
cTime:new Date()
},
{
stuNo:1710204007,
name:'李大明',
cTime:new Date()
}
]
},
methods:{
add(){
var newInfo = {stuNo:this.stuNo, name:this.name, cTime:new Date()}
this.list.push(newInfo)
this.stuNo=this.name=''
},
del(stuNo){
this.list.some((item,i)=>{
if(item.stuNo===stuNo){
this.list.splice(i,1)
return true;
}
})
},
search(keywords){
// var newList = []
// this.list.forEach(item=>{
// if(item.name.indexOf(keywords)!=-1){
// newList.push(item)
// }
// })
// return newList
return this.list.filter(item=>{
if(item.name.includes(keywords)){
return item
}
})
}
},
filters:{
dateFormat:function(dateStr){
var year = dateStr.getFullYear()
var mouth = (dateStr.getMonth() + 1).toString().padStart(2,'0')
var date = (dateStr.getDate()).toString().padStart(2,'0')
var h = (dateStr.getHours()).toString().padStart(2,'0')
var m = (dateStr.getMinutes()).toString().padStart(2,'0')
var s = (dateStr.getSeconds()).toString().padStart(2,'0')
return `${year}-${mouth}-${date} ${h}:${m}:${s}`
}
}
})
</script>
</body>
</html>
看完上述内容,是不是对vue实现简单学生信息管理的代码解析有进一步的了解,如果还想学习更多内容,欢迎关注天达云行业资讯频道。