Vue中的vue-resource

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZZY1078689276/article/details/83544714

  • 版本: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])

配置信息命令

参数 类型 描述
url string 发送URL请求
body ObjectFormDatastring 作为请求主体发送的数据
headers Object 将作为HTTP请求标头发送的Headers对象
params Object 要作为URL参数发送的参数对象
method string HTTP方法(例如GET、POST、…)
responseType string 响应主体的类型(例如文本、blob、json、…)
timeout number 请求超时(以毫秒为单位)(0表示没有超时)
credentials boolean 指示是否应该使用凭据发出跨站点访问控制请求
emulateHTTP boolean 使用HTTP POST发送PUT、PATCH和DELETE请求,并设置X-HTTP-Method-Override标头
before function(request) 回调函数,用于在发送请求对象之前修改它
uploadProgress function(event) 处理上传进程的回调函数
downloadProgress function(event) 回调函数来处理下载的进度

响应

属性 类型 描述
url string 返回原始的URL
body Object, Blob, string 响应体
headers Header 响应头对象
ok boolean HTTP状态码在200到299之间
status number HTTP状态码的响应
statusText string 响应的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中的页面信息,进而完成页面信息的更新操作。

猜你喜欢

转载自blog.csdn.net/ZZY1078689276/article/details/83544714