vue-resource 与 axios 区别?

如题,axios有什么优势?

阅读 18.1k
6 个回答

vue-resources不再更新了,vue作者尤大推荐axios。就这。

axios 支持 Node.js 环境的使用,换句话说在 Vue SSR 中不需要额外处理,vue-resources 当时是只提供了浏览器环境,现在不知道了。

axios功能强大一点,比如axios有文件下载进度,vue-resources没有。

vue-resource

vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。

vue-resource特点:

  1. 体积小

vue-resource非常小巧,在压缩以后只有大约12KB,服务端启用gzip压缩后只有4.5KB大小,这远比jQuery的体积要小得多。

  1. 支持主流的浏览器

和Vue.js一样,vue-resource除了不支持IE 9以下的浏览器,其他主流的浏览器都支持。

  1. 支持Promise API和URI Templates,Promise是ES6的特性,Promise的中文含义为“先知”,Promise对象用于异步计算。

URI Templates表示URI模板,有些类似于ASP.NET MVC的路由模板。

  1. 支持拦截器

拦截器是全局的,拦截器可以在请求发送前和发送请求后做一些处理。
拦截器在一些场景下会非常有用,比如请求发送前在headers中设置access_token,或者在请求失败时,提供共通的处理方式。

vue-resouce的使用:

  1. 引入vue-resource

<script src="js/vue.js"></script>

<script src="js/vue-resource.js"></script>

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

axios:

vue2.0之后,就不再对vue-resource更新,而是推荐使用axios。基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 Node.js 中使用。

功能特性
1、在浏览器中发送 XMLHttpRequests 请求
2、在 node.js 中发送 http请求
3、支持 Promise API
4、拦截请求和响应
5、转换请求和响应数据
6、取消请求
7、自动转换 JSON 数据
8、客户端支持保护安全免受 CSRF/XSRF 攻击
安装 axios
$ npm install axios
在要使用的文件中引入axios
import axios from 'axios'

说实话,小白表示暂时使用没感觉到很大的区别,vue-resource的源码中也基于promise的形式实现了各种http请求,包括各个环境的兼容处理,包括普通的xhr、ie下的xdr以及node中的等等。拦截器方面的话两者也都有的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题