axios学习记录

全篇共 1780 字。按500字/分钟阅读速度,阅读完预计需要 3.6 分钟。

axios 是一款流行的 JavaScript 语言开源库。在前端,axios 封装 XMLHttpRequest 实例的方法实现向服务端发送请求和获取响应能力,在基于 Node.js 环境的服务端,它又封装了 Node.js 内建的 http 模块实现同样的请求与响应能力。对于前后端都使用 JavaScript 的开发者,axios 让前后端使用同一套接口调用方式,降低学习成本,抹平 XMLHttpRequest 和 http 模块的不同的使用方式。axios 支持 Promise API,所以也可用 ES2017 提出的 Async/Await 语法进一步提升代码可读性。

认识axios

首先是 axios 名字的由来,axios 在 github 代码仓库的主页和网络上都没有其名字含义的明确解释。 axios 这个名字的意义及由来是什么? 这篇帖子下方的跟帖里倒是有一张“不明觉厉”的图片,这张图描述了 axios 每一个字母所代表的含义。

axios 给了自己三个关键词:http-client、javascript、nodejs、promise。在前端,AJAX 已经成为在不刷新页面的情况下与服务端进行基于 http 协议通信的浏览器端重要接口。除了在浏览器,丰富的基于 http 协议的命令行工具也是客户端的一种。httpie 是我偶然发现的很有意思的命令行工具,原来已经有很多人在使用它了。axios 不但能在作为 javasscript 库在浏览器中为前端工程师提供帮助,在基于 node.js 开发的服务端 axios 也能为后端工程师提供帮助。使用 Promise 接口编程是使用回调函数的绝妙替代方案,.then() 语法更符合我们在生活中“当做完这件事,然后就做那件事”的逻辑认知。再配合 async/await 语法,完全摆脱掉“缩进”的噩梦,可读性大大提升,开发者能把更多精力放在代码逻辑本身。

请求方法

使用7种类型 HTTP 请求方法向 http://www.shuaihuajun.com/ajax/ 地址发起请求,包括:GET、POST、PUT、PATH、HEAD、OPTIONS、DELETE。使用 axios.get(url[, config]) 以及 HEAD、OPTIONS、DELETE 请求方法向服务端发送请求时,body 不携带数据。使用 axios.post(url[, data[, config]]) 以及 PUT、PATCH 请求方法时,可携带数据。你可记住“3P”开头的请求方法可携带数据,其他则不携带数据。

axios七种HTTP请求方法类型

axios 的这七个和HTTP请求方法一一对应的方法,它们其实是 axios.request([config]) 方法的别名便捷版本。所以,如果使用了这七个“别名”方法,可选第三个 config 参数就不需包含请求方法、请求地址和携带数据这些属性了。

结语

阅读 axios 接口文档 是开始学习 axios 最好的入门教程。我的这篇文章仅用于记录我在学习和使用 axios 的过程中想到和遇到的 axios 接口文档所未提及的那部分事情,更重要的是记录揭开 axios 后看到的本质的东西。各种库和框架层出不穷,量变成就质变,而那最本质的就是让你未来走得更远的东西。罗马也不是一天建成的,学习是一个不断收获新知的过程。过程意味着我们必然会经历由简入繁,从稚嫩到成熟的蜕变。大可不必艳羡。任何收获,哪怕一点点,都值得庆祝,脚印是一步步积累的,再高的山峦也需要坚韧的人一座座地翻越。

我记得上学那会,老师们常会在讲完某个知识点后停下来,问台下同学“有问题吗”。当时的我没有意识到这一句提问会对每个人在未来的工作学习和生活中产生多大的益处,直到进入社会了,参加工作了,我越来越觉得,永远保持对一切事物的好奇心以及对真相的渴求并且用行动解决问题查明真相满足好奇心是何等重要。回避问题,就好像明明身体不舒服,但就是不去体检和治病,以为只要不检查病就不存在,这种自欺欺人的奇怪思维是什么时候被灌输和培养起来的呢。

原创作者 » 陈帅华
版权声明 » 自由转载-保持署名-非商用-非衍生
发布日期 » 2017年10月4日 周三
更新日期 » 2020年2月2日 周日
上一篇 » [译] MySQL参考手册·上篇
下一篇 » Sass学习指南
:)记录此刻想法
请选择登录方式,开始记录你的想法。
授权微博登录
授权Github登录