2019-05-07 14:06:27 1909浏览
今天千锋扣丁学堂HTML5培训老师给大家分享一篇关于详解Vue结合后台的列表增删改案例,首先列表内容还是与之前的列表内容类似,不过此处我们会采用Vue中数据请求的方式来实现数据的增删。那么我们使用的Vue第三方组件就是vue-resource,vue发起请求的方式与jQuery的ajax相似,组要是请求地址与参数和方法。
<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.title}}</td> <td>{{item.description}}</td> <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="del(item.id)">删除</a></td> </tr> </tbody> </table>
getList(){ this.$http.get('list').then(result=>{ var result =result.body; if(result.code ===200){ this.list = result.data }else{ alert("获取数据失败"); } }) },
created(){ //在其他方法中调用定义的方法使用this关键字 this.getList(); },
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="lib/vue-2.4.0.js" ></script> <script type="text/javascript" src="lib/vue-resource-1.3.4.js"></script> <link rel="stylesheet" href="lib/bootstrap-3.3.7.css" rel="external nofollow" rel="external nofollow" /> </head> <body> <div id="app"> <div class="panel-primary"> <div class="panel-heading"> <h3 class="panel-title">添加品牌</h3> </div> <div class="panel-body form-inline"> <label> Id:<input type="text" v-model="id" class="form-control" /> </label> <label> Name: <input type="text" v-model="title" class="form-control" /> </label> <label> 关键字 </label> <input type="text" v-model="description" class="form-control"/> <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.title}}</td> <td>{{item.description}}</td> <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="del(item.id)">删除</a></td> </tr> </tbody> </table> </div> <script> var vm = new Vue({ el:'#app', data:{ id:"", title:"", description:"", list:[], }, created(){ this.getList(); }, methods:{ getList(){ this.$http.get('http://localhost:8080/list').then(result=>{ var result =result.body; if(result.code ===200){ this.list = result.data }else{ alert("获取数据失败"); } }) }, add(){ this.$http.post('http://localhost:8080/submit',{id:this.id,title:this.title,description:this.description},{emulateJSON:true}).then(result=>{ var result =result.body; if(result.code ===200){ this.getList(); }else{ alert("获取数据失败"); } }) }, del(id){ this.$http.get('http://localhost:8080/del/'+id,{emulateJSON:true}).then(result=>{ var result =result.body; if(result.code ===200){ this.getList(); }else{ alert("获取数据失败"); } }) } } }) </script> </body> </html>
Vue.http.options.root=http://localhost:8080/;
Vue.http.options.emulateJSON = true;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="lib/vue-2.4.0.js" ></script> <script type="text/javascript" src="lib/vue-resource-1.3.4.js"></script> <link rel="stylesheet" href="lib/bootstrap-3.3.7.css" rel="external nofollow" rel="external nofollow" /> </head> <body> <div id="app"> <div class="panel-primary"> <div class="panel-heading"> <h3 class="panel-title">添加品牌</h3> </div> <div class="panel-body form-inline"> <label> Id:<input type="text" v-model="id" class="form-control" /> </label> <label> Name: <input type="text" v-model="title" class="form-control" /> </label> <label> 关键字 </label> <input type="text" v-model="description" class="form-control"/> <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.title}}</td> <td>{{item.description}}</td> <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click.prevent="del(item.id)">删除</a></td> </tr> </tbody> </table> </div> <script> Vue.http.options.root="http://localhost:8080/"; Vue.http.options.emulateJSON = true; var vm = new Vue({ el:'#app', data:{ id:"", title:"", description:"", list:[], }, created(){ this.getList(); }, methods:{ getList(){ this.$http.get('list').then(result=>{ var result =result.body; if(result.code ===200){ this.list = result.data }else{ alert("获取数据失败"); } }) }, add(){ console.log("1"); this.$http.post('submit',{id:this.id,title:this.title,description:this.description}).then(result=>{ var result =result.body; if(result.code ===200){ this.getList(); }else{ alert("获取数据失败"); } }) }, del(id){ console.log(2); this.$http.get('del/'+id).then(result=>{ var result =result.body; if(result.code ===200){ this.getList(); }else{ alert("获取数据失败"); } }) } } }) </script> </body> </html>
【关注微信公众号获取更多学习资料】 【扫码进入HTML5前端开发VIP免费公开课】