Vue中使用vue-resource发起HTTP请求详解

作者:青山有信时间:2026-10-22 18:53:28浏览:291

本文介绍Vue插件vue-resource的特点,包括体积小、支持主流浏览器、Promise API及拦截器。通过v1.2.1版本示例,展示如何使用this.$http发送GET请求获取JSON数据,并处理响应结果与页面更新。

vue-resource特性概述

vue-resource特性概述

该插件具备以下核心特性:

1. 体积轻量:压缩后仅约12KB,启用gzip压缩后更是缩减至4.5KB,远小于jQuery的体积。

2. 浏览器兼容:与Vue.js一致,除IE 9以下版本外,支持所有主流浏览器。

3. 支持Promise API与URI Templates:Promise作为ES6特性用于处理异步计算;URI Templates类似于ASP.NET MVC的路由模板。

4. 支持拦截器:作为全局机制,可在请求发送前后执行处理逻辑,例如在headers中设置access_token或在请求失败时提供统一处理。

vue-resource使用示例

接下来通过具体示例演示vue-resource在Vue中的应用。

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

配置信息命令

vue-resource特性概述

响应处理

vue-resource特性概述

源码展示

GET请求JSON文件示例

以下通过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":"李四"
  }
 ]
}

运行结果

vue-resource特性概述

逻辑分析

逻辑分析

上述代码实现了点击button按钮触发getData的click响应事件,该事件发送URL请求(本地JSON文件请求与后台数据请求方法一致)。请求返回的数据在then()回调函数中处理,例如JSON返回的status响应状态码,0代表成功,否则为失败。响应成功后调用body.message,将数据主体绑定到data数据域中的list中。由于list数据变动,Vue会自动刷新li的v-for中的页面信息,从而完成页面更新。

总结

以上所述是小编给大家介绍的Vue中的vue-resource示例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!

作者最新文章