当前位置: 移动技术网 > IT编程>脚本编程>vue.js > 详解vue-Resource(与后端数据交互)

详解vue-Resource(与后端数据交互)

2018年05月07日  | 移动技术网IT编程  | 我要评论

阿宾情史,罗马法原论,安徽六安一中

单来说,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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网