美文网首页前端
vue-resource用法记录

vue-resource用法记录

作者: SunnySky_ | 来源:发表于2017-11-27 17:12 被阅读72次

    基础语法

    引入vue-resource后,可以基于全局的Vue对象使用http,也可以基于某个Vue实例使用http。

    // 基于全局Vue对象使用http
    Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback);
    Vue.http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
    
    // 在一个Vue实例内使用$http
    this.$http.get('/someUrl', [options]).then(successCallback, errorCallback);
    this.$http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
    

    在发送请求后,使用then方法来处理响应结果,then方法有两个参数,第一个参数是响应成功时的回调函数,第二个参数是响应失败时的回调函数。

    then方法的回调函数也有两种写法,第一种是传统的函数写法,第二种是更为简洁的ES 6的Lambda写法:

    // 传统写法
    this.$http.get('/someUrl', [options]).then(function(response){
        // 响应成功回调
    }, function(response){
        // 响应错误回调
    });
    
    // Lambda写法
    this.$http.get('/someUrl', [options]).then((response) => {
        // 响应成功回调
    }, (response) => {
        // 响应错误回调
    });
    

    methods

    vue-resource提供了7种请求API:

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

    options对象

    发送请求时的options选项对象包含以下属性:

    参数 类型 描述
    url string 请求的URL
    method string 请求的HTTP方法,例如:'GET', 'POST'或其他HTTP方法
    body Object, FormData,string request body
    params Object 请求的URL参数对象
    headers Object request header
    timeout number 单位为毫秒的请求超时时间 (0 表示无超时时间)
    before function(request) 请求发送前的处理函数,类似于jQuery的beforeSend函数
    progress function(event) ProgressEvent回调处理函数
    credientials boolean 表示跨域请求时是否需要使用凭证
    emulateHTTP boolean 发送PUT, PATCH, DELETE请求时以HTTP POST的方式发送,并设置请求头的X-HTTP-Method-Override
    emulateJSON boolean 将request body以application/x-www-form-urlencoded content type发送

    Example

    post请求

    {
      // POST /someUrl
      this.$http.post('/someUrl', {foo: 'bar'}).then(response => {
    
        // get status
        response.status;
    
        // get status text
        response.statusText;
    
        // get 'Expires' header
        response.headers.get('Expires');
    
        // get body data
        this.someData = response.body;
    
      }, response => {
        // error callback
      });
    }
    

    发送一个get请求URL查询参数和定制headers。

    {
      // GET /someUrl?foo=bar
      this.$http.get('/someUrl', {params: {foo: 'bar'}, headers: {'X-Custom': '...'}}).then(response => {
        // success callback
      }, response => {
        // error callback
      });
    }
    

    获取图像,并使用blob ()方法提取图像响应的正文内容。

    {
      // GET /image.jpg
      this.$http.get('/image.jpg', {responseType: 'blob'}).then(response => {
    
        // resolve to Blob
        return response.blob();
    
      }).then(blob => {
        // use image Blob
      });
    }
    

    Interceptors

    在response返回给successCallback或errorCallback之前,可以修改response中的内容,或做一些处理。

    Vue.http.interceptors.push((request, next) => {
            // ...
            // 请求发送前的处理逻辑
            // ...
        next((response) => {
            // ...
            // 请求发送后的处理逻辑
            // ...
            // 根据请求的状态,response参数会返回给successCallback或errorCallback
            return response
        })
    })
    

    相关文章

      网友评论

        本文标题:vue-resource用法记录

        本文链接:https://www.haomeiwen.com/subject/zpmdbxtx.html