Vue中的vue-resource

  • 版本:vue-resource v1.2.1
  • 作用:

  Vue与后台Api进行交互通常是利用vue-resource来实现的,本质上vue-resource是通过http来完成AJAX请求相应的。

  • 用法:

  Vue实例对象注册this.$http服务,可以发送HTTP请求。解析请求所返回的结果。此外,Vue实例将会自定绑定到this所在的回调函数中。

{
  // GET /someUrl
  this.$http.get('/someUrl').then(response => {
    // success callback
  }, response => {
    // error callback
  });
}

快捷方法列表

  • get(url, [config])
  • head(url, [config])
  • delete(url, [config])
  • jsonp(url, [config])
  • post(url, [body], [config])
  • put(url, [body], [config])
  • patch(url, [body], [config])

配置信息命令

参数类型描述
urlstring发送URL请求
bodyObjectFormDatastring作为请求主体发送的数据
headersObject将作为HTTP请求标头发送的Headers对象
paramsObject要作为URL参数发送的参数对象
methodstringHTTP方法(例如GET、POST、…)
responseTypestring响应主体的类型(例如文本、blob、json、…)
timeoutnumber请求超时(以毫秒为单位)(0表示没有超时)
credentialsboolean指示是否应该使用凭据发出跨站点访问控制请求
emulateHTTPboolean使用HTTP POST发送PUT、PATCH和DELETE请求,并设置X-HTTP-Method-Override标头
beforefunction(request)回调函数,用于在发送请求对象之前修改它
uploadProgressfunction(event)处理上传进程的回调函数
downloadProgressfunction(event)回调函数来处理下载的进度

响应

属性类型描述
urlstring返回原始的URL
bodyObject, Blob, string响应体
headersHeader响应头对象
okbooleanHTTP状态码在200到299之间
statusnumberHTTP状态码的响应
statusTextstring响应的HTTP状态文本
方法类型描述
text()Promise将主体解析为字符串
json()Promise将主体解析为解析的JSON对象
blob()Promise将主体解析为Blob对象

源码

  下面我将以get请求访问json文件的方式来展示vue-resource的用法。

html中的源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-router</title>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="item in list">{{item.name}}</li>
        </ul>
        <button @click="getData">get请求</button>
    </div>
<script src="../../../js/vue/vue/1.0/vue.js"></script>
<script src="../../../js/vue/vue-resource/1.2.1/vue-resource.js"></script>
<script type="application/javascript">
    var vm = new Vue({
        el:'#app'
        ,data:{
            list:[]
        }
        ,methods:{
            getData(){
                var url = '../json/get.json';
                this.$http.get(url).then(function(res){
                    var body = res.body;
                    if(body.status){
                        alert('请求出错!');
                    }
                    this.list = body.message;
                });
            }
        }
    });
</script>
</body>
</html>

json文件中的源码

{
  "status":0
  ,"message":[
    {
      "id":1
      ,"name":"张三"
    }
    ,{
      "id":2
      ,"name":"李四"
    }
  ]
}

结果

在这里插入图片描述

分析

  上面的代码实现的功能是在页面中通过点击button按钮来触发一个getDataclick响应事件,而该事件实现的功能是发送一个url请求(尽管说其请求的是本地的json文件数据,不过其请求后台的方法和该方法是一模一样的,所以说其用于请求后台的数据也是同样的用法。),该请求返回url链接所响应的数据。而该返回数据将会在then()回调函数中进行相应的处理,比如说我们的json文件中就返回了status响应状态码,其中0代表成功,否则失败。而一旦响应成功,则调用body.message,将相应的数据主体绑定到data数据域中的list中,由于list中的数据有变动,因而Vue会自定的刷新liv-for中的页面信息,进而完成页面信息的更新操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值