VUE 更好的 ajax 上传处理 axios.js实现代码


Posted in Javascript onMay 10, 2017

vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的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'
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
使用jQuery在对象中缓存选择器的简单方法
Jun 30 Javascript
JavaScript检测上传文件大小的方法
Jul 22 Javascript
js封装tab标签页实例分享
Dec 19 Javascript
jquery实现转盘抽奖功能
Jan 06 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 Javascript
详解Webpack loader 之 file-loader
Nov 07 Javascript
node.js学习笔记之koa框架和简单爬虫练习
Dec 13 Javascript
jquery轮播图插件使用方法详解
Jul 31 jQuery
.netcore+vue 实现压缩文件下载功能
Sep 24 Javascript
vuejs2.0子组件改变父组件的数据实例
May 10 #Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 #Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 #Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 #Javascript
You might like
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
php链表用法实例分析
2015/07/09 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
python获取网页状态码示例
2014/03/30 Python
Python映射拆分操作符用法实例
2015/05/19 Python
python制作最美应用的爬虫
2015/10/28 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
活动宣传策划方案
2014/05/23 职场文书
廉政教育的心得体会
2014/09/01 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
导游词范文
2015/02/13 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
css height属性中的calc方法详解
2021/06/03 HTML / CSS
MongoDB使用场景总结
2022/02/24 MongoDB
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫