本篇是笔者自己练习的案例,其中可能存在很多新手错误
这是一个简单的表格形式的记录添加和删除实现。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.min.js"></script><!-- CDN形式引入Vue -->
<style>
a{
font-size: 12px;
color:rgb(0, 132, 255);
}
a:hover{
font-size: 12px;
text-decoration: underline;
}
.mTable{
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
width:100%;
margin: 5px 0px;
}
.mTable tr{
border-bottom: 1px solid #ccc;
padding: 5px 0px;margin: 0px;
background-color: aliceblue;
}
.mTable th{
border-bottom: 1px solid #ccc;
padding: 5px 0px;margin: 0px;
background-color: rgb(79, 173, 255);
}
.mTable td{
border-bottom: 1px solid #ccc;
padding: 5px 0px;margin: 0px;
background-color: aliceblue;
text-align: center;
}
</style>
</head>
<body>
<div id="root">
<input type="text" placeholder="姓名" v-model="newRec.name">
<select v-model="newRec.sex">
<option value="男">男</option>
<option value="女">女</option>
</select>
<input type="number" placeholder="年龄" v-model="newRec.age">
<button @click="add">新增</button>
<table id="table" class="mTable" cellpading="0" cellspacing = 0 border="0">
<tr>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>操作</th>
</tr>
<tr v-for="rec in recs" :key="rec.id">
<td>{{rec.name}}</td>
<td>{{rec.sex}}</td>
<td>{{rec.age}}</td>
<td><a @click="remove($event,rec.id)">删除</a></td>
</tr>
</table>
</div>
<script>
const vm = new Vue({
el:"#root",
data:{
recs:[
{id:"001",name:"张三",sex:"男",age:18},
{id:"002",name:"李四",sex:"女",age:28},
{id:"003",name:"王五",sex:"男",age:38},
],
newRec:{
id:"",
name:"",
sex:"男",
age:null
}
},
methods: {
add(){
//动态创建id
this.newRec.id = "00" + this.recs.length + 1
//创建新纪录 newRec的副本
const nRec = {}
for (let key in this.newRec) {
nRec[key] = this.newRec[key]
}
//添加新纪录
this.recs.push(nRec)
//清空
this.newRec.id = ""
this.newRec.name = ""
this.newRec.sex = "男"
this.newRec.age = null
},
remove(e,key){
e.preventDefault();//阻止超链接的默认点击行为
let index;
for(let i=0;i<this.recs.length;i++){
if(this.recs[i].id == key){
index = i
}
}
this.recs.splice(index,1)
}
},
})
</script>
</body>
</html>