ps:本案例有用到boostrap.css
1、首先搭建好网页页面
- 1.1、一个标题
<div class="panel-heading">
<h3 class="panel-title">商品列表</h3>
</div>
- 1.2、再两个输入框输入商品信息
<div class="panel-body form-inline">
id: <input type="text" class="form-control" v-model="id" />
name: <input type="text" class="form-control" v-model="NAME" />
<input type="button" value="添加" class="btn btn-primary" @click="add" />
</div>
ps: 类 panel-heading panel-title panel-body form-inline 等均为boostrap的样式类
- 1.3、页面顶部完整代码:
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">商品列表</h3>
</div>
<div class="panel-body form-inline">
id: <input type="text" class="form-control" v-model="id" />
name: <input type="text" class="form-control" v-model="NAME" />
<input type="button" value="添加" class="btn btn-primary" @click="add" />
</div>
</div>
- 1.4、在顶部部分下面添加一个表格,同时在data里定义一个数组,存放商品信息,再定义代表商品信息的遍历,然后再在表格里用v-for遍历商品信息
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>id</th>
<th>NAME</th>
<th>CTIME</th>
<th>OPERATION</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{item.id}}</td>
<td>{{item.NAME}}</td>
<td>{{item.CTIME}}</td>
<td><a @click.prevent="del(item.id)">删除</a></td> <!-- prevent清除a链接的默认行为 -->
</tr>
</tbody>
</table>
ps:要注意的是,Vue2.0版本之后v-for必须要设置key的属性
- 1.5、HTML部分完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>品牌列表的添加与删除</title>
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="bootstrap-3.3.7-dist/css/bootstrap.min.css"/>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
/* #banner{
width: 100%;
height: 50px;
background-color: cadetblue;
text-align: left;
line-height: 50px;
text-indent: 2em;
} */
</style>
</head>
<body>
<div id="app">
<!-- <div id="banner">
商品列表
</div> -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">商品列表</h3>
</div>
<div class="panel-body form-inline">
id: <input type="text" class="form-control" v-model="id" />
name: <input type="text" class="form-control" v-model="NAME" />
<input type="button" value="添加" class="btn btn-primary" @click="add" />
</div>
</div>
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>id</th>
<th>NAME</th>
<th>CTIME</th>
<th>OPERATION</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{item.id}}</td>
<td>{{item.NAME}}</td>
<td>{{item.CTIME}}</td>
<td><a @click.prevent="del(item.id)">删除</a></td> <!-- prevent清除a链接的默认行为 -->
</tr>
</tbody>
</table>
</div>
</body>
- 1.6、页面部分效果
2、Vue实例部分
2.1、data部分代码
data:{
id:'',
NAME:'',
CTIME:'',
list:[
{id:1,NAME:'奔驰',CTIME:new Date()},
{id:2,NAME:'宝马',CTIME:new Date()},
{id:3,NAME:'法拉利',CTIME:new Date()},
{id:4,NAME:'劳斯莱斯',CTIME:new Date()},
{id:5,NAME:'四驱车',CTIME:new Date()},
]
},
2.2、给添加按钮绑定add()方法,给删除按钮添加del()方法
- 2.2.1、add()方法
- 首先判断输入信息是否为空
if(this.id==''||this.name==""){ console.log("商品信息不能为空") return false; }
- 然后定义一个变量保存输入的信息
//获取要输入的商品的内容 var car = {id:this.id,NAME:this.NAME,CTIME:new Date()};
- 然后把保存的信息插入list数组
//插入列表数组 this.list.push(car);
- 最后清空输入量
//清空输入框 this.id=this.NAME='';
- 2.2.2 、del()方法
- 根据所点击的删除按钮的id来获取是哪一行的删除被点击了,所以del()方法要传入一个参数
item.id
<td><a @click.prevent="del(item.id)">删除</a></td>
- 然后判断传入的id匹配的是哪个信息的id,然后将 相对应的id商品信息删除
this.list.some((item,i)=>{ if(item.id==id){ this.list.splice(i,1); return true; } })
- 根据所点击的删除按钮的id来获取是哪一行的删除被点击了,所以del()方法要传入一个参数
2.3、方法部分完整代码
methods:{
add(){
if(this.id==''||this.name==""){
console.log("商品信息不能为空")
return false;
}
console.log("商品添加成功!");
//获取要输入的商品的内容
var car = {id:this.id,NAME:this.NAME,CTIME:new Date()};
//插入列表数组
this.list.push(car);
//清空输入框
this.id=this.NAME='';
},
del(id){ //更具id删除商品信息
this.list.some((item,i)=>{
if(item.id==id){
this.list.splice(i,1);
return true;
}
})
}
}
3、项目完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>品牌列表的添加与删除</title>
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="bootstrap-3.3.7-dist/css/bootstrap.min.css"/>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
/* #banner{
width: 100%;
height: 50px;
background-color: cadetblue;
text-align: left;
line-height: 50px;
text-indent: 2em;
} */
</style>
</head>
<body>
<div id="app">
<!-- <div id="banner">
商品列表
</div> -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">商品列表</h3>
</div>
<div class="panel-body form-inline">
id: <input type="text" class="form-control" v-model="id" />
name: <input type="text" class="form-control" v-model="NAME" />
<input type="button" value="添加" class="btn btn-primary" @click="add" />
</div>
</div>
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>id</th>
<th>NAME</th>
<th>CTIME</th>
<th>OPERATION</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{item.id}}</td>
<td>{{item.NAME}}</td>
<td>{{item.CTIME}}</td>
<td><a @click.prevent="del(item.id)">删除</a></td> <!-- prevent清除a链接的默认行为 -->
</tr>
</tbody>
</table>
</div>
</body>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
id:'',
NAME:'',
CTIME:'',
list:[
{id:1,NAME:'奔驰',CTIME:new Date()},
{id:2,NAME:'宝马',CTIME:new Date()},
{id:3,NAME:'法拉利',CTIME:new Date()},
{id:4,NAME:'劳斯莱斯',CTIME:new Date()},
{id:5,NAME:'四驱车',CTIME:new Date()},
]
},
methods:{
add(){
if(this.id==''||this.name==""){
console.log("商品信息不能为空")
return false;
}
console.log("商品添加成功!");
//获取要输入的商品的内容
var car = {id:this.id,NAME:this.NAME,CTIME:new Date()};
//插入列表数组
this.list.push(car);
//清空输入框
this.id=this.NAME='';
},
del(id){ //更具id删除商品信息
this.list.some((item,i)=>{
if(item.id==id){
this.list.splice(i,1);
return true;
}
})
}
}
})
</script>
</html>