vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法。

首先就是引入axios,如果你使用es6,只需要安装axios模块之后

  1. import axios from 'axios';
    //安装方法
    npm install axios
    //或
    bower install axios

当然也可以用script引入

  1. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

axios提供了一下几种请求方式

  1. axios.request(config)
  2.  
  3. axios.get(url[, config])
  4.  
  5. axios.delete(url[, config])
  6.  
  7. axios.head(url[, config])
  8.  
  9. axios.post(url[, data[, config]])
  10.  
  11. axios.put(url[, data[, config]])
  12.  
  13. axios.patch(url[, data[, config]])

这里的config是对一些基本信息的配置,比如请求头,baseURL,当然这里提供了一些比较方便配置项

  1. //config
    import Qs from 'qs'
    {
  2. //请求的接口,在请求的时候,如axios.get(url,config);这里的url会覆盖掉config中的url
  3. url: '/user',
  4.  
  5. // 请求方法同上
  6. method: 'get', // default
  7. // 基础url前缀
  8. baseURL: 'https://some-domain.com/api/',
      
        
  9. transformRequest: [function (data) {
  10. // 这里可以在发送请求之前对请求数据做处理,比如form-data格式化等,这里可以使用开头引入的Qs(这个模块在安装axios的时候就已经安装了,不需要另外安装)
  11.   data = Qs.stringify({});
  12. return data;
  13. }],
  14.  
  15. transformResponse: [function (data) {
  16. // 这里提前处理返回的数据
  17.  
  18. return data;
  19. }],
  20.  
  21. // 请求头信息
  22. headers: {'X-Requested-With': 'XMLHttpRequest'},
  23.  
  24. //parameter参数
  25. params: {
  26. ID: 12345
  27. },
  28.  
  29. //post参数,使用axios.post(url,{},config);如果没有额外的也必须要用一个空对象,否则会报错
  30. data: {
  31. firstName: 'Fred'
  32. },
  33.  
  34. //设置超时时间
  35. timeout: 1000,
  36. //返回数据类型
  37. responseType: 'json', // default
  38.  
  39. }

有了配置文件,我们就可以减少很多额外的处理代码也更优美,直接使用

  1. axios.post(url,{},config)
  2. .then(function(res){
  3. console.log(res);
  4. })
  5. .catch(function(err){
  6. console.log(err);
  7. })
    //axios请求返回的也是一个promise,跟踪错误只需要在最后加一个catch就可以了。
    //下面是关于同时发起多个请求时的处理
  1. axios.all([get1(), get2()])
  2. .then(axios.spread(function (res1, res2) {
  3. // 只有两个请求都完成才会成功,否则会被catch捕获
  4. }));

最后还是说一下配置项,上面讲的是额外配置,如果你不想另外写也可以直接配置全局

  1. axios.defaults.baseURL = 'https://api.example.com';
  2. axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
  3. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
  4.  
  5. //当然还可以这么配置
  1. var instance = axios.create({
  2. baseURL: 'https://api.example.com'
  3. });

本文只是介绍基本的用法,详细看官方文档https://github.com/axios

《转》vue更新到2.0之后vue-resource不在更新,axios的使用的更多相关文章

  1. Vue.js(25)之 vue全局配置api介绍

    本文介绍的全局api并不在Vue的构造函数内,而是在Vue构造器外面提供这些方法,让我们扩展新功能. 1. vue.extend(options) 参考:https://www.w3cplus.com ...

  2. vue2.0项目实战(3)使用axios发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

  3. vue - 列表显示(列互相影响,全选控制,更新数据)

    要实现的效果为:全选,且列A列B互相影响,列B勾选则列A一定勾选,列A取消勾选,则相应列B取消勾选 数组 vue中列表渲染有些不是相应式的 var list=[ { a:'aaaa', b:'ddd' ...

  4. vue2.0 vs vue

    vue2.0相比vue1.0 有哪些改变,今天总结了一下 vue2.0组件中 template 不在支持代码片段 //vue1.0组件中template写法 <template> < ...

  5. VUE 动态给对象增加属性,并触发视图更新。

    在开发过程中,我们时常会遇到这样一种情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的. 根据官方文档定义 ...

  6. vue虚拟DOM源码学习-vnode的挂载和更新流程

    代码如下: <div id="app"> {{someVar}} </div> <script type="text/javascript& ...

  7. 【转】[总结]vue开发常见知识点及问题资料整理(持续更新)

    1.(webpack)vue-cli构建的项目如何设置每个页面的title 2.vue项目中使用axios上传图片等文件 3.qs.stringify() 和JSON.stringify()的区别以及 ...

  8. 【vue-cli 3.0】 vue.config.js配置 - 路径别名

    如何配置vue-cli 3中vue.config.js的路径别名? 前段时间更新电脑重装了一下vue-cli,发现了vue-cli已经更新到3.0版.用来搭建项目后发现简化了很多,而且配置文件现在可以 ...

  9. vue mand-mobile按2.0文档默认安装的是1.6.8版本

    vue mand-mobile按2.0文档默认安装的是1.6.8版本 npm list mand-mobilebigbullmobile@1.0.0 E:\webcode\bigbullmobile` ...

随机推荐

  1. [OpenCV-Python] OpenCV 中机器学习 部分 VIII

    部分 VIII机器学习 OpenCV-Python 中文教程(搬运)目录 46 K 近邻(k-Nearest Neighbour ) 46.1 理解 K 近邻目标 • 本节我们要理解 k 近邻(kNN ...

  2. Ubuntu18.10&Ubuntu18.04安装Python虚拟环境

    Ubuntu18.04版本里面自带了最新的Python3.6.5版本,在安装Python虚拟环境时需注意: 1.首先是安装两个包 pip3 install virtualenv # python虚拟环 ...

  3. NODESCHOOL

    来源:https://nodeschool.io/zh-cn/ 核心基础课程(Core) javascripting 学习 JavaScript 语言的基础,无需任何编程经验 npm install ...

  4. html 音乐 QQ播放器 外链 代码 播放器 外链 代码

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha QQ播放器 外链 代码 播放器 外链 代码 ======== 歌曲链接 QQ播放器 外链 ...

  5. POJ 3243 Clever Y 扩展BSGS

    http://poj.org/problem?id=3243 这道题的输入数据输入后需要将a和b都%p https://blog.csdn.net/zzkksunboy/article/details ...

  6. Codeforces Round #514 (Div. 2)

    目录 Codeforces 1059 A.Cashier B.Forgery C.Sequence Transformation D.Nature Reserve(二分) E.Split the Tr ...

  7. 本地搭建Wordpress博客网站(Windows)

    最近在写一些web功能测试的一个主题分享,里边有一个分类是数据库测试,那么数据库测试有几个点的方法,其中有一个是学会看数据库的日志.由于公司内部的数据库日志我们测试人员暂时不开放查看,所以打算自己在本 ...

  8. 2016年3月16日Android学习笔记

    1.Jdk1.7以上switch语句中才能用字符串,在Android Studio中我改正了jdk的版本为1.8,但是还是出同样的错误,原来我用的sdk版本是4.4的,改成5的就没有问题了. 2.引入 ...

  9. java有时候String a="zz"出现String cannot be resolved to a variable

    原因很简单在String a="zz"前面有些该注释的没注释导致

  10. 更优雅地关闭资源 - try-with-resource及其异常抑制

    原文:https://www.cnblogs.com/itZhy/p/7636615.html 一.背景 我们知道,在Java编程过程中,如果打开了外部资源(文件.数据库连接.网络连接等),我们必须在 ...