Vue假数据应用——表格的添加、删除、搜索

Vue实现假数据的添加、删除、搜索
Vue假数据应用——表格的添加、删除、搜索

HTML

<html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="../lib/vue.js" ></script> <link  href="../lib/bootstrap.min.css" /> <!--引入bootstrap框架来写样式--> </head> <body> <div id="app">  			<div class="panl panel-primary"> 				<div class="panel-heading"> 					<h3 class="panel-title">添加品牌</h3> 				</div>  				<div class="panel-body"> 					<div class="panle-body form-inline">  						<lebel> 							Id:<input type="text" class="form-control" v-model="id" /> 						</lebel>  						<lebel> 							name:<input type="text" class="form-control" v-model="name" /> 						</lebel>  						<!---在vue中,使用事件绑定机制,为元素,指定处理函数的时候,如果加了小括号,就可以给函数传参了--> 						<input type="button" value="添加" class="btn btn-primary" @click="add()" />  						<lebel> 							搜索名称关键字:<input type="text" class="form-control" v-model="keywords" /> 						</lebel>  					</div> 				</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> 					<!--之前,v-for中的数据,都是直接从data上的list中直接渲染过来的 			  		现在,我们自定义了一个search方法,同时,把所有的关键字,通过传参的形式,传递给了search方法 			  		在search方法内部,通过执行for循环,把所有符合搜索关键字的数据,保存到一个一个新的数组中,返回, 			  	--> 					<tr v-for="item in search(keywords)" :key="item.id"> 						<td>{{item.id}}</td> 						<td v-text="item.name"></td> 						<td>{{ item.ctime }}</td> 						<td> 							<a href="" @click.prevent="del(item.id)">删除</a> 						</td> 					</tr> 				</tbody> 			</table>  		</div>  </body> </html> 

Javascript

<script>  var vm=new Vue({ el:'#app', data:{   id:'',   name:'',   keywords:'',   list:[{      id:1,      name: "大众", 	ctime: new Date() 	}, 	{ 	id: 2, 	name: "宝马", 	ctime: new Date() 	}, 	{ 	id: 3, 	name: "奔驰", 	ctime: new Date() 	}   ] }, methods: { 	add() {            var car = { 			id: this.id, 			name: this.name, 			ctime: new Date() 			} 			this.list.push(car) 			this.id = this.name = '' //添加后就为空 		},  /* 根据id删除数据(两个方法) 方法1,如何根据id,找到要删这一项的索引 方法2,如果找到索引了,直接调用数组的splice方法 */ del(id){   /*         this.list.some((item,i)=>{			//数组some()方法中,返回true,就终止这个数组的后续循环 			if(item.id==id){ 			   this.list.splice(i,1) 					return true; 				} 			  })   */ 	var index = this.list.findIndex(item => { 			if(item.id == id) { 					return true; 			} 			}) 			 this.list.splice(index, 1)      },       search(keywords) { //根据关键字,进行数据的搜索    return this.list.filter(item => {    	//在ES6中,为字符串提供了个新方法,加做String.prototype.includes('要包含的字符串') 	//如果包含,则返回true,否则返回false 			if(item.name.includes(keywords)) { 				return item; 			}   })  }   } })  </script> 

(时间格式那边可能不太标准,可用过滤器替换)