vue项目中axios的封装和使用
一、axios的功能特点
二、常见的配置选项
三、axios封装
第一步:安装axios
npm install axios --save
第二步:在main.js中引入
方式一:必须传三个参数 回调函数的方法
export function request(config, success, failure) {
    //创建axios实例
    const instance = axios.creat({
        baseURL: 'http://192.168.14.146:8088',
        timeout: 50000
    })
    //发送真正的网络请求
    instance(config.baseconfig)
    .then(res => {
        // console.log(res) //要回调出去
        success(res) //回调
    })
    .catch(err => {
        // console.log(err) //要回调出去
        failure(err) //回调
    })
}
调用:
import {request} from "./network/request"
//方式一:
request({ //config
  url: '',
}, res => { //success
  console.log(res)
}, err => { //failure
  console.log(err)
})
方式二:只传一个config 回调函数的方法
export function request(config) {
    //创建axios实例
    const instance = axios.creat({
        baseURL: 'http://192.168.14.146:8088',
        timeout: 50000
    })
    //发送真正的网络请求
    instance(config.baseconfig)
        .then(res => {
            // console.log(res) //不能直接在这里处理数据要回调出去
            config.success(res) //回调
        })
        .catch(err => {
            // console.log(err) //不能直接在这里处理数据要回调出去
            config.failure(err) //回调
        })
}
调用:
request({
  baseconfig: {
  },
  success: function(res) {
  },
  failure: function(err) {
  }
})
方式三: Promise方法
export function request(config) {
    return new Promise((resolve, reject) => {
        //创建axios实例
        const instance = axios.creat({
            baseURL: 'http://192.168.14.146:8088',
            timeout: 50000
        })
        //发送真正的网络请求
        instance(config)
            .then(res => {
                // console.log(res) //要回调出去
                resolve(res) //回调
            })
            .catch(err => {
                // console.log(err) //要回调出去
                reject(err) //回调
            })
    })
}
这样写其实是有点多余,因为axios本身返回的是一个promise(下图源码),所以可以直接return,不用自己包装promise

export function request(config) {
    //创建axios实例
    const instance = axios.creat({
        baseURL: 'http://192.168.14.146:8088',
        timeout: 50000
    })
    //发送真正的网络请求
   return instance(config)
   //create 的axios返回值本身是一个promise,所以直接return就可以了,不用自己包装promise
}
调用:
//方式三
request({
url: '',
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
vue项目中axios的封装和使用的更多相关文章
- vue项目中 axios 和Vue-axios的关系
		
文章收集于:https://segmentfault.com/q/1010000010812113 在vue项目中,会经常看到如下代码: 今天看到有些项目是这样写的,就有点看不懂了. ----解 ...
 - vue项目中的函数封装
		
项目中一般都会有fun.js这类的文件,里面有各种的如转换时间格式的,处理转换的等等函数方法. 其实经常用到的去获取基本数据的接口也可以封装成一个方法,方便复用. 如上面所标,获取列表数据之前需要先获 ...
 - vue.js中axios的封装
		
基于前文所述,axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它有很多优秀的特性,例如拦截请求和响应.取消请求.转换json.客户端防御XSRF等. 如果还对a ...
 - 在vue项目中使用自己封装的ajax
		
在 src 目录下新建 vue.extend.js ,内容如下: export default { install(Vue) { Vue.prototype.$http=function(option ...
 - 关于vue项目中axios跨域的解决方法(开发环境)
		
1.在config文件中修改index.js proxyTable: { "/api":{ target: 'https://www.baidu.com/muc/',//你需要跨域 ...
 - Vue项目中的http请求统一管理
		
module.exports = { dev: { // Paths assetsSubDirectory: '/', assetsPublicPath: '/', proxyTable: { /op ...
 - 浅谈 Axios 在 Vue 项目中的使用
		
介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 特性 它主要有如下特性: 浏览器端发起XMLHttpRequests请求 Node端发起http ...
 - vue中Axios的封装和API接口的管理
		
前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...
 - Vue项目中使用Vuex + axios发送请求
		
本文是受多篇类似博文的影响写成的,内容也大致相同.无意抄袭,只是为了总结出一份自己的经验. 一直以来,在使用Vue进行开发时,每当涉及到前后端交互都是在每个函数中单独的写代码,这样一来加大了工作量,二 ...
 
随机推荐
- Log4j Threshold、Append
			
报错ERROR日志单独存放 Threshold属性可以指定日志level Log4j根据日志信息的重要程度,分OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL 比如我们指定某个a ...
 - data_model_action
			
w PowerDesigner
 - C#-概念-接口:接口
			
ylbtech-C#-概念-接口:接口 接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口. 接口(软件类接口)是指对协定进行定义的引用类型.其他类型实现接口,以保证它们支持某些操作.接 ...
 - telnet批量检测端口状态(linux)
			
批量检测端口通信: 准备文件树状图 telnet.sh 脚本内容如下: 文件说明 telnet_alive.txt : 活动的端口 telnet_die.txt : 离线的端口 telnet ...
 - 关于VMWare的几种网络模式
			
具体的可以参考这个博文:http://zhenyaliu.blog.163.com/blog/static/2377571920103775447527/
 - Learning OSG programing---osgAnimation(2)
			
osg::Node* createBase(const osg::Vec3& center,float radius) { ; ; *radius; *radius; osg::Vec3 v0 ...
 - Pikachu漏洞练习平台实验——SQL注入(四)
			
1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...
 - [BZOJ 4771]七彩树(可持久化线段树+树上差分)
			
[BZOJ 4771]七彩树(可持久化线段树+树上差分) 题面 给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点.每个节点都被染上了某一种颜色,其中第i个节点的颜色为c[i].如果c[i] ...
 - sshpass非交互SSH密码验证
			
1.yum安装yum install sshpass -y1.1编译安装yum install wget -ywget http://sourceforge.net/projects/sshpass/ ...
 - Oracle连接远程数据库
			
我用的事navicat连接工具 方法一: 找到 工具---->环境,OCI环境 选择中间那个(我的是这个,我不确定是不是都一样,可以都试试),选好之后关闭navicat,重新运行navicat ...