vue案例表格的增删改查

vue的增删改查功能,

1 使用命令创建一个vue项目  vue init webpack test2

2 创建过程不再演示

3 接下来就是数据的增删改查功能大致如图所示

因为增加,和删除比较简单我们先演示增加和删除

4 这是我的代码 这里是比较基础的代码  ,script里面模拟的数据

<template>
<div class="hello">
<div>
书名:<input type="text" v-model="newList.name">
编号:<input type="text" v-model="newList.id">
日期:<input type="text" v-model="newList.d">
<input type="button" value="添加">
</div>
请输入查找关键字:<input type="text" v-model="name">
<input type="button" value="查询" >
<table>
<tr>
<td>名称</td>
<td>编号</td>
<td>日期</td>
<td>操作</td>
</tr>
<tr v-for="(book,index) in books" :key="index">
<td>{{book.name}}</td>
<td>{{book.id}}</td>
<td>{{book.d}}</td>
<td>
<a v-on:click="update(index)">修改</a>
<a v-on:click="del(index)"> {{book.del}}</a>
</td>
</tr>

</table>
</div>
</template>

<script>
export default {
name: 'HelloWorld',

mounted (){
},

data(){
return {
books:[
{name:"西游记",d:new Date(),del:'删除'},
{name:"三国演义",d:new Date(),del:'删除'},
{name:"或楼梦",d:new Date(),del:'删除'},
{name:"水浒传",d:new Date(),del:'删除'},
],
newList:{
name:'',
id:'',
d:'',
del:"删除"
},
name:'',
booksNew:[],
flag:false,
itemIndex:0,
bookList:{}
},

methods:{

}

}
</script>

<style scoped>
table{
width: 80%;
margin: 0 auto;
border-collapse: collapse;
}
table,td,tr{
border: 1px solid #333333;
}
a {
color: #42b983;
}
</style>

5 接下来演示删除

首先需要在删除按钮上添加一个事件   <a  v-on:click="del(index)"> {{book.del}}</a>  这里已经有了,接下来在methods里面添加事件 

del(index){this.books.splice(index,1)}  这里用的是删除方法

6  接下来是添加   在添加按钮上添加事件<input type="button" value="添加" @click="add">,然后在methods里面添加add事件

add(){this.books.push(this.newList)}   因为v-mode使用的是数据双向绑定,所以这里添加功能没问题,但是数据可能会有问题,建议是使用深拷贝代码可以换成下面的

add(){this.books.push(JSON.parse(JSON.stringify(this.newList)))}   到这里添加就完成了

7 紧接着是查询,查询的话需要再数据加载完成之后保存一下原始数据,便于后面做查询我是在数据挂载后拷贝了一份数据,同样是深拷贝将原始数据赋值给booksNew

mounted (){
this.booksNew = JSON.parse(JSON.stringify(this.books))
}

然后在查询按钮上新增一个事件<input type="button" value="查询" @click="searchBook">  在methods添加searchBook事件

searchBook(){
let arr = []//声明一个新的数组用来接收查询数据
if(this.name == '') this.books = this.booksNew //如果查询名称为空,就显示所有的数据
//然后循环判断
for(let i=0;i<this.books.length;i++){
if(this.books[i].name.indexOf(this.name) != -1){
arr.push(this.books[i])//判断如果查询到就追加到arr中
}
}
this.books = arr
}

此时查询功能就完成了

posted @ 2020-12-08 20:52  搲社会主义墙角  阅读(667)  评论(0编辑  收藏  举报