axios基本入门用法教程


Posted in Javascript onMarch 25, 2017

这篇文章主要给大家介绍了axios基本入门用法教程,下面话不多说,来看看详细的介绍吧。

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

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

当然也可以用script引入

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

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

axios.request(config)

axios.get(url[, config])

axios.delete(url[, config])

axios.head(url[, config])

axios.post(url[, data[, config]])

axios.put(url[, data[, config]])

axios.patch(url[, data[, config]])

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

//config
import Qs from 'qs'
{
 //请求的接口,在请求的时候,如axios.get(url,config);这里的url会覆盖掉config中的url
 url: '/user',

 // 请求方法同上
 method: 'get', // default
 // 基础url前缀
 baseURL: 'https://some-domain.com/api/',




 transformRequest: [function (data) {
 // 这里可以在发送请求之前对请求数据做处理,比如form-data格式化等,这里可以使用开头引入的Qs(这个模块在安装axios的时候就已经安装了,不需要另外安装)

data = Qs.stringify({});
 return data;
 }],

 transformResponse: [function (data) {
 // 这里提前处理返回的数据

 return data;
 }],

 // 请求头信息
 headers: {'X-Requested-With': 'XMLHttpRequest'},

 //parameter参数
 params: {
 ID: 12345
 },

 //post参数,使用axios.post(url,{},config);如果没有额外的也必须要用一个空对象,否则会报错
 data: {
 firstName: 'Fred'
 },

 //设置超时时间
 timeout: 1000,
 //返回数据类型
 responseType: 'json', // default

 
}

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

axios.post(url,{},config)
 .then(function(res){
  console.log(res);
 })
 .catch(function(err){
  console.log(err);
 })
//axios请求返回的也是一个promise,跟踪错误只需要在最后加一个catch就可以了。
//下面是关于同时发起多个请求时的处理

axios.all([get1(), get2()])
 .then(axios.spread(function (res1, res2) {
 // 只有两个请求都完成才会成功,否则会被catch捕获
 }));

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

axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

//当然还可以这么配置
var instance = axios.create({
 baseURL: 'https://api.example.com'
});

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

两个例子分享给大家:

使用vue2.0+mintUI+axios+vue-router:https://github.com/Stevenzwzhai/vue-mobile-application

使用vue2.0+elementUI+axios+vue-router:https://github.com/Stevenzwzhai/vue2.0-elementUI-axios-vueRouter

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Prototype 工具函数 学习
Jul 23 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
Jun 27 Javascript
asm.js使用示例代码
Nov 28 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
Feb 14 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
Swiper自定义分页器使用详解
Dec 28 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
详解JavaScript数据类型和判断方法
Sep 04 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 #Javascript
ECMAScript6 新特性范例大全
Mar 24 #Javascript
Three.js获取鼠标点击的三维坐标示例代码
Mar 24 #Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 #jQuery
Node.js和Express简单入门介绍
Mar 24 #Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 #Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 #Javascript
You might like
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python批量更改文件名的实现方法
2017/10/29 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python组合无重复三位数的实例
2018/11/13 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
求高于平均分的学生学号及成绩
2016/09/01 面试题
《会变的花树叶》教学反思
2014/02/10 职场文书
部门2015年度工作总结
2015/04/29 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python
python blinker 信号库
2022/05/04 Python