vue axios整合使用全攻略


Posted in Javascript onMay 24, 2018

惯例先安装axios,不多说!

cnpm install axios

1.axios配置

 我的目录结构src/axios/index.js,axios配置都在该文件下

src/axios/index.js 如下:

import axios from 'axios'
import qs from 'qs'
// axios 配置
axios.defaults.timeout = 5000;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.baseURL = 'http://localhost:8008';

拦截器,axios.interceptors.request.use发送请求前处理

axios.interceptors.response.use接受返回后,回调之前处理处理

//POST传参序列化
axios.interceptors.request.use((config) => {
 if(config.method === 'post'){
  config.data = qs.stringify(config.data);
 }
 return config;
},(error) =>{
 return Promise.reject(error);
});
//返回状态判断
axios.interceptors.response.use((res) =>{
 if(!res.data.success){
  return Promise.reject(res);
 }
 return res;
}, (error) => {
 //404等问题可以在这里处理
 return Promise.reject(error);
});

公共方法:

export function fetch(url, params) {
 return new Promise((resolve, reject) => {
  axios.post(url, params)
   .then(response => {
    resolve(response.data);
   }, err => {
    reject(err);
   })
   .catch((error) => {
    reject(error)
   })
 })
}

业务方法:

export default {
 getAddressJson() {
  return fetch('/address/',{addressId:1})
 }
}

如果不理解可以将以上代码依次copy到src/axios/index.js文件,当然axios.defaults.baseURL = 'http://localhost:8008'; 需要换成自己的api。

2全局注册axios

为了使用axios,在各个组件中引入就可以使用:

import axios from './axios'

但是使用这种方法我们需要在每一个组件中去引入,有些麻烦,下面我们介绍一种全局注册的方法。

在main.js中:

import axios from './axios'
Vue.prototype.$axios = axios

添加这两行代码,将 axios 改写为 Vue 的原型属性,这样在各个组件中都可以使用axios,具体方法如下:

submitForm () {    
   this.$axios.getAddressJson().then(function (res) {
  //成功之后处理逻辑
    console.log(res)
   },function (res) {
    //失败之后处理逻辑
    console.log("error:"+res)
   })
  }

总结

以上所述是小编给大家介绍的vue axios整合使用全攻略,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 类方法定义还是有点区别
Apr 15 Javascript
JavaScript实现的简单烟花特效代码
Oct 20 Javascript
jquery实现文本框textarea自适应高度
Mar 09 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
Jul 18 Javascript
vue中eslintrc.js配置最详细介绍
Dec 21 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
Jan 06 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
React 实现车牌键盘的示例代码
Dec 20 Javascript
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
vue路由拦截及页面跳转的设置方法
May 24 #Javascript
使用Vue自定义指令实现Select组件
May 24 #Javascript
详解Vue单元测试case写法
May 24 #Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 #Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 24 #Javascript
react实现点击选中的li高亮的示例代码
May 24 #Javascript
浅谈Webpack 是如何加载模块的
May 24 #Javascript
You might like
php小偷相关截取函数备忘
2010/11/28 PHP
php 发送带附件邮件示例
2014/01/23 PHP
php-fpm配置详解
2014/02/12 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php计算税后工资的方法
2015/07/28 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
Python循环语句中else的用法总结
2016/09/11 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
Python3内置模块random随机方法小结
2019/07/13 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
Django继承自带user表并重写的例子
2019/11/18 Python
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
秘书岗位职责
2013/11/18 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
百年校庆节目主持词
2014/03/27 职场文书
节约用水演讲稿
2014/05/21 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
应收账款管理制度
2015/08/06 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
python 调用js的四种方式
2021/04/11 Python
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript