阿宾情史,罗马法原论,安徽六安一中
单来说,vue-resource就像jquery里的$.ajax,用来和后端交互数据的。可以放在created或者ready里面运行来获取或者更新数据...
vue-resource文档:
结合vue-router
data(){ return{ toplist:[], alllist:[] } }, //vue-router route:{ data({to}){ //并发请求,利用 promise return promise.all([ //简写 this.$http.get('http://192.168.30.235:9999/rest/knowledge/list',{'websiteid':2,'pagesize':5,'pageno':1,'istop':1}), //this.$http.get('http://192.168.30.235:9999/rest/knowledge/list',{'websiteid':2,'pagesize':20,'pageno':1,'istop':0}) //不简写 this.$http({ method:'get', url:'http://192.168.30.235:9999/rest/knowledge/list', data:{'websiteid':2,'pagesize':20,'pageno':1,'istop':0}, headers: {"x-requested-with": "xmlhttprequest"}, emulatejson: true }) ]).then(function(data){//es5写法 return{ toplist:data[0].data.knowledgelist, alllist:data[1].data.knowledgelist } //es6写法 .then()部分 //.then(([toplist,alllist])=>({toplist,alllist})) },function(error){ //error }) } }
在其他地方使用
ready(){ var that=this; var websiteid = 2, pagesize = 20, pageno =1; that.$http({ method:'get', url:'http://192.168.30.235:9999/rest/knowledge/list', data:{'websiteid':websiteid,'pagesize':pagesize,'pageno':pageno,'istop':0} }).then(function(data){ //赋值给alllist数组, that.$set('alllist',data.data.knowledgelist) }) //简写 /*that.$http.get('http://192.168.30.235:9999/knowledge/list',{'websiteid':2,'pagesize':20,'pageno':1,'istop':0}).then(function(response){ that.$set('alllist',response.data.knowledgelist) })*/ }
若定义全部变量(在data()中定义),使用$get()获取
data(){ return{ toplist:[], alllist:[], websiteid:2, pagesize:20, pageno:1 } }, ready(){ var that=this; that.$http({ method:'get', url:'http://192.168.30.235:9999/rest/knowledge/list', //使用定义的全局变量 用$get()获取 data:{'websiteid':that.$get('websiteid'),'pagesize':that.$get('pagesize'),'pageno':that.$get('pageno'),'istop':0} }).then(function(data){ //赋值给alllist数组, that.$set('alllist',data.data.knowledgelist) },function(error){ //error }) }
post方式同理
将数据绑定到dom上
<ul> <li v-for="item in alllist" v-if="item.istop == false"> <a v-link="{ name: 'getreceiptdetail',params:{knowledgeid: item.id }}"> <div class='fl know-info'> <!-- | limit 和 | timer是filter 在后续会说到--> <!--字段含义: --> <p class='font-normal nomal-height'>{{item.title | limit 30 }}</p> <p class='co9a9a9a' ><span style='margin-right: 1rem;'>{{item.viewtimes}}k</span><span>{{item.publishtime | timer }}</span></p> <!--viewtimes:有多少人查看 , publishtime:发布时间--> </div> <div class='fr know-img'> <img v-bind:src=item.coverimage /> </div> <div class='clearfix'></div> </a> </li> </ul>
在vue-validator中做post示例 , 将接口请求地址定义为全局详见vuex
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
详解element上传组件before-remove钩子问题解决
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
网友评论