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 相关文章推荐
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
jquery仿微信聊天界面
May 06 jQuery
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
Aug 16 Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 Javascript
vue axios登录请求拦截器
Apr 02 Javascript
JS查找孩子节点简单示例
Jul 25 Javascript
react中useState使用:如何实现在当前表格直接更改数据
Aug 05 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
php compact 通过变量创建数组
2016/11/15 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
vue组件发布到npm简单步骤
2017/11/30 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
PyCharm下载和安装详细步骤
2019/12/17 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
美国校园市场:OCM
2017/06/08 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
几道数据库的概念性面试题
2014/05/30 面试题
优秀应届本科生求职信
2014/07/19 职场文书
董事长秘书工作总结
2015/08/14 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
PHP遍历数组的6种方式总结
2021/11/17 PHP